私は同じ問題に遭遇し、異なるシステム(debian、ubuntu現在)で問題なく動作するようにこれを書いてしまいました:
make_chroot_initrd
スクリプトを実行して、既存のイメージから新しいchroot対応のinitrdイメージを作成します。
# ./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
新しいイメージは、chroot=
ブートパラメーターを処理できるようになったことを除いて、まったく同じになります。
ブートローダとしてGRUB2を使用すると、にエントリを追加することができます/boot/grub/grub.cfg
:
(または、おそらくより良いです/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
}
(ファイル/パーティションを自分のものに変更します)
システム全体のインストール
満足したら、変更を永続的にすることができます
(initramfs-toolsパッケージがアップグレードされるまで)。
chrootedシステムでは:
# 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
今後、通常のinitrdイメージはchrootブートをサポートします。
同期が取れなくなる可能性のある別のinitrd.chrootを使用する必要はありません。
詳細については、boot_chrootを参照してください。
vmlinuz root=/dev/sda1/chroot
動作しません。おそらくで使用されているものと同様の方法でこれをシミュレートできinitrd
ます。ここを参照してください。/new_root
そこで説明されているようにマウントしてから、cd /new_root
docd /new_root/chroot
およびcontinueの代わりに。