私のハードドライブにLinux(Debian Jessie)がインストールされています。ドライブ - sda1
、ext4fs、およびsda2
- スワップ
フォルダがあります/chroot
。フォルダに別のシステムがインストールされています/chroot
。
質問:
ブートマネージャに起動を指示する方法メインシステムではない(主にDebian Jessie)しかし、システムは/chroot?おそらく変更/menu.lst
して/chroot/etc/fstab
? ( vmlinuz root=/dev/sda1/chroot
?)
または質問の別のバリエーション:パーティションのルートの代わりにフォルダにLinuxをインストールできますか? ( /another_linux/bin
, /another_linux/home
, /another_linux/etc
, ...)
ベストアンサー1
同じ問題に直面し、結局これを書く他のシステム(現在の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パッケージがアップグレードされるまで)。
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
これから、通常のinitrdイメージはchroot起動をサポートします。
別のinitrd.chrootを使用する必要はありません。そうしないと、同期が中断される可能性があります。
バラよりchrootを起動もっと学ぶ。