Aynı konuda rastladım ve bitti bu yazma farklı sistemleri arasında acısız çalışması için (debian, ubuntu şu anda):
make_chroot_initrd
Mevcut olandan yeni bir chroot özellikli initrd görüntüsü oluşturmak için komut dosyasını çalıştırın :
# ./make_chroot_initrd /chroot/trusty/boot/initrd.img-3.13.0-32-generic
making new initrd: /chroot/trusty/boot/initrd.img-3.13.0-32-generic.chroot
Yeni görüntü tam olarak aynı olacak, ancak şimdi bir chroot=
önyükleme parametresini işleyebilir .
Önyükleyici olarak grub2 ile aşağıdakilere bir giriş ekleyebilirsiniz /boot/grub/grub.cfg
:
(veya belki de daha iyi /etc/grub.d/40_custom
)
menuentry "ubuntu trusty, (linux 3.13.0-32) (chroot)" {
insmod ext2 # or whatever you're using ...
set root='(hd0,7)' # partition containing the chroot
set chroot='/chroot/trusty' # chroot path
linux $chroot/boot/vmlinuz-3.13.0-32-generic root=/dev/sda7 chroot=$chroot rw
initrd $chroot/boot/initrd.img-3.13.0-32-generic.chroot
}
(dosyalarınızı / bölümlerinizi kendinize uyacak şekilde değiştirin)
Sistem genelinde kurulum
Bundan memnun olduğunuzda değişiklikleri kalıcı hale getirebilirsiniz
(initramfs-tools paketi yükseltilene kadar).
Köklü sistemde:
# cd /usr/share/initramfs-tools
# cp -pdrv . ../initramfs-tools.orig # backup
# patch -p1 < path_to/boot_chroot/initrd.patch
# rm *.orig */*.orig
# update-initramfs -u
Şu andan itibaren düzenli initrd imajı kroot önyüklemesini destekleyecektir.
Ayrı bir initrd.chroot kullanmaya gerek yoktur, bu da onunla senkronize olmayabilir.
Ayrıntılar için boot_chroot'a bakın.
vmlinuz root=/dev/sda1/chroot
çalışmaz. Muhtemelen bu, kullanılana benzer bir yöntemle simüle edilebilirinitrd
. Örneğin buraya bakınız ./new_root
Orada açıklandığı gibi monte edersiniz , sonracd /new_root
docd /new_root/chroot
ve devam etmek yerine .