From c4321813f9f3cd4136203d52c0f20343d7722228 Mon Sep 17 00:00:00 2001 From: Colin Guthrie Date: Sat, 19 Oct 2013 21:30:12 +0100 Subject: stage1: Move the symlink creation from stage1 to init. In order to run stage1 we now need to do things a little differently, namely that we move the symlinking fixups into 'init' itself which we will actually call as a kind of fake switch_root implementation to avoid hacking dracut too much[1]. As we run stage1 during dracut's 'mount' phase we should not do the symlink hacks so early otherwise it will mess up the rest of the dracut initqueue processing. Currently, the initrd's /usr is nuked and then symlinked, but to allow for easier debugging I now just bind mount the stage2 /usr over the top which allows us to unmount it again easily enough if we want to go back. We no longer touch the /bin, /sbin or /lib[64] symlinks as these are relative and simply bind mounting /usr is enough to fix all of them. 1. This scheme will have to change if we eventually swtich to a systemd based dracut invocation. --- mdk-stage1/NEWS | 1 + 1 file changed, 1 insertion(+) (limited to 'mdk-stage1/NEWS') diff --git a/mdk-stage1/NEWS b/mdk-stage1/NEWS index 3c65b1bd5..8f2846cbd 100644 --- a/mdk-stage1/NEWS +++ b/mdk-stage1/NEWS @@ -1,3 +1,4 @@ +- do initrd symlinking in 'init' rather than 'stage1' (stage1 is now run earlier) - build init and stage1 as a shared library (due to bugs in directory handling in dietlibc as exposed in libkmod but also because glibc is already include in dracut) -- cgit v1.2.1