Saya menemukan masalah yang sama dan akhirnya menulis ini untuk membuatnya bekerja tanpa rasa sakit di berbagai sistem (debian, ubuntu saat ini):
Lari make_chroot_initrd
skrip untuk membuat gambar initrd yang diaktifkan dengan chroot baru dari yang sudah ada:
# ./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
Gambar baru akan persis sama, kecuali sekarang dapat menangani chroot=
parameter boot.
Dengan grub2 sebagai bootloader Anda dapat menambahkan entri ke /boot/grub/grub.cfg
:
(atau mungkin lebih baik /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
}
(ubah file / partisi agar sesuai dengan milik Anda)
Pemasangan di seluruh sistem
Setelah puas, Anda dapat membuat perubahan permanen
(hingga paket initramfs-tools ditingkatkan).
Dalam sistem chroot:
# 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
Mulai sekarang gambar initrd biasa akan mendukung boot chroot.
Tidak perlu menggunakan initrd.chroot terpisah yang mungkin tidak sinkron dengannya.
Lihat boot_chroot untuk detailnya.
vmlinuz root=/dev/sda1/chroot
tidak akan bekerja Orang mungkin bisa mensimulasikan ini dengan metode yang mirip dengan apa yang digunakaninitrd
. Lihat misalnya di sini . Anda me/new_root
- mount seperti yang dijelaskan di sana, lalu bukannyacd /new_root
melakukancd /new_root/chroot
dan melanjutkan.