
mdadm
EXT4パーティション(OSファイルとGRUBファイルを含む)を持つマネージドRAID1があり、/boot/grub
このパーティションから起動するためにGRUBが必要なモジュールと構成が何であるかを知りたいです。
答え1
最小要件grub.cfg
は次のとおりです。
set timeout=1
set root='mduuid/ce16c757e4752e4fa9a2fd4935df1aef'
menuentry 'Arch Linux' {
linux /boot/vmlinuz-linux root=UUID=05dddf23-1d9f-417e-b3f8-2281a328dc0b rw
initrd /boot/initramfs-linux.img
}
はい、生成された長いガベージストリームとはかなり異なりますgrub-mkconfig
。ご覧のとおり、この設定にはモジュールが必要ないようです。
私の特定の設定は、その上に組み込まれたRAID1アレイとそのアレイのEXT4パーティションを持つMBRフォーマットディスクの単一パーティションです。
このroot
変数はmduuid/xxx
次のように設定されます。RAIDアレイのUUIDmdadm --examine /dev/sdX
RAIDアレイの一部であるディスクまたはパーティションで実行してこれを取得できます。これは、RAID経由のEXT4ファイルシステムのUUIDではありません。、報告されたUUIDを使用しないでください。lsblk
これは、UUIDが機能していないパーティションのUUIDのみを提供するためです。
RAIDアレイの作成時に指定したタグを使用してこの変数を設定することもできますroot
()。ルートデバイスを指定する他の方法は次のとおりです。md/...
mdadm ... -N "some label" ...
文書を見る。
カーネルパラメータ行のUUIDは次のとおりです。ファイルシステムUUIDこれは、以下を実行して取得できるRAIDアレイの上にありますlsblk -o NAME,UUID
。
NAME UUID
loop0
└─loop0p2 ce16c757-e475-2e4f-a9a2-fd4935df1aef
└─md127 05dddf23-1d9f-417e-b3f8-2281a328dc0b
loop1
└─loop1p2 ce16c757-e475-2e4f-a9a2-fd4935df1aef
└─md127 05dddf23-1d9f-417e-b3f8-2281a328dc0b
私の場合は、mdXXX
デバイスノードに対応します。この例では、05dddf23-1d9f-417e-b3f8-2281a328dc0b
プライマリパーティションのUUIDを使用しないでください。loopXp2
ボーナスとしてここに素晴らしいシェルスクリプトがあります。ちょっとしたことQEMU/KVM 仮想マシンで GRUB を実験する場合。
一部の生ディスクを作成するには、ホストにマウントする「raw」でなければならず、qcow2またはvmdkは使用できません。
qemu-img create -f raw driveX.img XXXG # name and size
2つのディスク、ISO(この場合はArchlinuxですが、何でも構いません)とプライマリネットワークアクセスでVMを起動するには、次の手順を実行します。
/path/to/qemu-system-x86_64 -m 512 -cpu host -smp 2,cores=2,sockets=1 -machine q35,accel=kvm -balloon none -device ahci,id=ahci -drive if=none,file=drive1.img,format=raw,cache=none,aio=native,id=hdd1 -device ide-hd,bus=ahci.0,drive=hdd1 -drive if=none,file=drive2.img,format=raw,cache=none,aio=native,id=hdd2 -device ide-hd,bus=ahci.1,drive=hdd2 -drive if=none,file=arch.iso,format=raw,cache=none,aio=native,id=iso,snapshot=on -device ide-cd,bus=ahci.2,drive=iso -device pci-ohci,id=ohci -device usb-kbd,bus=ohci.0 -device usb-mouse,bus=ohci.0 -netdev user,id=net0 -device e1000-82545em,autonegotiation=on,netdev=net0 -realtime mlock=on
ホストに VM パーティションをマウントするスクリプトです。パーティションの破損を防ぐために、実行する前にQEMUを停止する必要があります。
losetup -P -f drive1.img # create loopback device nodes for the virtual disks
losetup -P -f drive2.img
mdadm --assemble /dev/md/root /dev/loop0p1 /dev/loop1p1 # assemble the RAID
# some distributions will auto-detect and assemble them so it sometimes fails
# running this script a second time usually succeeds in mounting it anyway
# if it failed the first time - I don't have time to fix the real issue
mount "/dev/md/root" rootfs # mount the root FS of the VM in this directory
削除スクリプトです。 VMのバックアップを開始する前に、このスクリプトを実行してください(安全のために複数回実行してください)。
umount rootfs # umount the FS
mdadm --stop /dev/md127 # sometimes the array appears under these names
mdadm --stop /dev/md126 # so we stop them as well just to be safe
mdadm --stop /dev/md/root # the correct name
losetup -D # detach all loop device nodes