installation process (called like /boot/initrd.img-2.6...) to
understand fully how the following works.
-# Modifying initramsfs content
+# Modifying initramfs content
The root file system is to be given as the root= option for the
kernel, normally a partition name. In our case, we need 2 pieces of
to load it from there
* in case of network booting, upload kernel
image and initramfs file to another host
- configured as a bootp or dhcp server.
+ configured as a bootp or dhcp server. For how
+ to do that, see for instance [[booting_linux_through_the_network]]
Notice how the /boot directory content on /somedir/myownrootfs will
never be used when booting; it is only there to feed the booting
[use the break= or debug
kernel options](http://wiki.debian.org/InitramfsDebug).
-Related links:
+# Several partitions inside NTFS
+
+If you have separate /var, /usr or /home partitions as loop filesystems inside the NTFS partition, you will certainly not get a full boot at the first trial. Let's see why.
+
+When you initramfs has run pivot_root to switch to the final / partition inside the NTFS partition, the new /sbin/init loses all knowledge that the NTFS partition is actually mounted and must rely on information in /etc/fstab to mount the remaining /var, /usr or /home. Obviously, the entry for these partitions will be some loop file mount from the NTFS partition, which must be mounted **first**.
+
+Because the order of mounting the filesystems in /etc/fstab is random, you have to force mounting the NTFS partition first (which was already mounted inside initramfs, remember; doesn't you head spin now?). Here is a diff from a Squeeze installation which shows my hackish solution:
+
+<pre>
+$ diff -C 2 /etc/init.d/checkfs.sh /etc/init.d/checkfs.sh-O
+*** /etc/init.d/checkfs.sh 2012-02-09 18:19:55.000000000 +0100
+--- /etc/init.d/checkfs.sh-O 2011-01-01 06:55:27.000000000 +0100
+***************
+*** 140,145 ****
+ }
+
+- mount -a -t ntfs
+-
+ case "$1" in
+ start|"")
+--- 140,143 ----
+$ diff -C 2 /etc/init.d/mountall.sh /etc/init.d/mountall.sh-O
+*** /etc/init.d/mountall.sh 2012-02-09 18:17:40.000000000 +0100
+--- /etc/init.d/mountall.sh-O 2011-01-01 06:55:27.000000000 +0100
+***************
+*** 28,32 ****
+ #
+ mount_all_local() {
+! mount -a -t nontfs,nfs,nfs4,smbfs,cifs,ncp,ncpfs,coda,ocfs2,gfs,gfs2 \
+ -O no_netdev
+ }
+--- 28,32 ----
+ #
+ mount_all_local() {
+! mount -a -t nonfs,nfs4,smbfs,cifs,ncp,ncpfs,coda,ocfs2,gfs,gfs2 \
+ -O no_netdev
+ }
+</pre>
+
+# Related links
* comparing initramfs with an [alternative](http://wiki.debian.org/InitrdReplacementOptions)
* what is said about initramfs by the [Debian competition](http://en.gentoo-wiki.com/wiki/Initramfs)