Encontré el mismo problema y terminé escribiendo esto para que funcione sin problemas en diferentes sistemas (debian, ubuntu actualmente):
Ejecute el make_chroot_initrd
script para crear una nueva imagen initrd habilitada para chroot a partir de la existente:
# ./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
La nueva imagen será exactamente la misma, excepto que ahora puede manejar un chroot=
parámetro de arranque.
Con grub2 como gestor de arranque puede agregar una entrada a /boot/grub/grub.cfg
:
(o tal vez mejor /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
}
(cambie archivos / particiones para que coincidan con los suyos)
Instalación en todo el sistema
Una vez que esté satisfecho con él, puede hacer que los cambios sean permanentes
(hasta que se actualice el paquete initramfs-tools).
En el sistema chrooteado:
# 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
De ahora en adelante, la imagen initrd regular admitirá el arranque chroot.
No es necesario usar un initrd.chroot separado que puede no estar sincronizado con él.
Ver boot_chroot para más detalles.
vmlinuz root=/dev/sda1/chroot
no funciona Probablemente se podría simular esto con un método similar al que se usainitrd
. Ver, por ejemplo, aquí . Se monta/new_root
como se describe allí, luego en lugar decd /new_root
hacercd /new_root/chroot
y continuar.