複数のディスクに grub ブートローダを動的にインストールする

複数のディスクに grub ブートローダを動的にインストールする

Early_commandを使用して、2つのディスクにgrubインストールを動的にプロビジョニングしようとしています。 IPXEを使用しています。関連部分は次のとおりです。

d-i partman/early_command string \
DISKA=$(realpath /dev/disk/by-id/ata-SuperMicro_SSD_* /dev/disk/by-id/ata-SATA_SSD_*|grep -o '/dev/sd[a-z]'|uniq|sort|head -n1); \
DISKB=$(realpath /dev/disk/by-id/ata-SuperMicro_SSD_* /dev/disk/by-id/ata-SATA_SSD_*|grep -o '/dev/sd[a-z]'|uniq|sort|head -n2|tail -1); \
if [ "${DISKA}" == "" ]; then DISKA="/dev/sda"; fi; \
if [ "${DISKB}" == "" ]; then DISKB="/dev/sdb"; fi; \
debconf-set partman-auto/disk "$DISKA $DISKB"; \
debconf-set partman-auto-raid/recipe "1 2 0 ext4 / ${DISKA}2#${DISKB}2 . 1 2 0 lvm - ${DISKA}4#${DISKB}4 ."; \
debconf-set grub-installer/bootdev "$DISKA $DISKB";

私は上記の方法を使用または使用せずに次の方法のいくつかのバリエーション(true、false)を試しました。

d-i grub-installer/only_debian boolean false
d-i grub-installer/with_other_os boolean false

Early_commandでもこれを試しました。

debconf-set grub-installer/only_debian false; \
debconf-set grub-installer/with_other_os false;

残念ながら、Install the GRUB boot loader on a hard diskダイアログボックスには次のように正しいディスクが表示されているので、確認して続行する必要があります。自動的にプリセットできますか?

ディスクへのGRUBの取り付け

ベストアンサー1

知っていた。行から二重引用符を削除する必要があります。

debconf-set partman-auto/disk "$DISKA $DISKB"; \
debconf-set grub-installer/bootdev "$DISKA $DISKB";

になる:

debconf-set partman-auto/disk "$DISKA $DISKB"; \
debconf-set grub-installer/bootdev $DISKA $DISKB;

編集する

/dev/sda再起動後、次のコマンドでのみgrubがインストールされていることがわかりましたdd bs=512 count=1 if=/dev/sda 2>/dev/null | strings

ZRr=
`|f 
\|f1
GRUB 
Geom
Hard Disk
Read
 Error

同じコマンドを実行すると、/dev/sdb何も返されません。これは、ディスクの最初の512Bが空であることを意味するため、/dev/sdb次のようにgrubを手動でインストールする必要があります。

# grub-install /dev/sdb
# dd bs=512 count=1 if=/dev/sdb 2>/dev/null | strings
ZRr=
`|f 
\|f1
GRUB 
Geom
Hard Disk
Read
 Error

2つのディスクにgrubをインストールする方法がまだ見つかりませんearly_command

ありがとう

おすすめ記事