debootstrapを使って新しいDebian 10システムをインストールしようとしました:
mount /dev/sda5 /mnt/chroot
debootstrap --variant=minbase buster /mnt/chroot ftp.au.debian.org
これまではブートローダーがよさそうです。今chrootに切り替える
mount --bind /dev /mnt/chroot/dev
mount --bind /proc /mnt/chroot/dev
mount --bind /sys /mnt/chroot/dev
chroot /mnt/chroot/
apt-get update
apt-get --no-install-recommends install busybox linux-image-amd64 systemd-sysv pciutils usbutils
passwd
これもエラーなしで実行できます。インストールされているカーネルはにあり、/vmlinuz -> boot/vmlinuz-4.19.0-11-amd64
カーネルモジュールはにあります/lib/modules/4.19.0-11-amd64
。
GRUBを介して新しいインストールで再起動します。
insmod all_video; search --label test; linux /vmlinuz root=LABEL=test; initrd /initrd.img
わかりました。
uname -r
4.9.0-13-amd64
これはdebootstrap(4.19.0-11)によってインストールされたカーネルではありません!代わりに、debootstrapを実行すると、親システムのカーネル4.9.0-13が表示されます。重要なのは、新しいインストールには4.9.0-13と一致するカーネルモジュールがないため、新しいシステムに複数のデバイスドライバがないことです。
私が使うなら
insmod all_video; set root=(hd1,gpt5); linux /vmlinuz root=/dev/sda5; initrd /initrd.img; boot
代わりに、私は新しいカーネルを使って新しいシステムで起動しました。
この問題はどこで発生し、回避策のアイデアはありますか?
とても感謝しています。
答え1
使用したGRUBコマンド、
insmod all_video; search --label test; linux /vmlinuz root=LABEL=test; initrd /initrd.img
デフォルトのGRUBルート(つまり、親システムのルート)からカーネル(/vmlinuz
)とinitramfs()を取得します。/initrd.img
だから指定
insmod all_video; set root=(hd1,gpt5); linux /vmlinuz root=/dev/sda5; initrd /initrd.img
代わりに動作します。ラベルの問題ではありませんが、新しいシステムのパーティションを使用するようにGRUBルートを設定し、そこからカーネルとinitramfsをロードしました。
この問題を解決するには、インストールを新しいデフォルト/dev/sda5
に設定したい場合の最善の解決策は、ブートしてから(上記の2番目のGRUBコマンドラインを使用して)、起動したシステムでDebian 10を実行しながらGRUBをインストールすることです。