Debianでは、livecdの代わりにinitramfsスクリプトを使用してmdの名前を変更する方法は?

Debianでは、livecdの代わりにinitramfsスクリプトを使用してmdの名前を変更する方法は?

MDが有効な状態でMDの名前を変更できますか?私が知る限り、それは不可能です。

mdadm -A --update=name --name=ibmlinux-root /dev/md126
ls /dev/md/126_0 
/dev/md/126_0 
ls /dev/md/ibmlinux-root
error: no such file or directory

ただ停止し、名前を更新して再組み立てしてください。

mdadm --stop /dev/md126
mdadm -A --update=name --name=ibmlinux-root /dev/md126

これで問題は... /dev/md126は/にマウントされたルートデバイスなので、マウント解除できません。

最善の方法は、live-cdを使用して再起動し、名前を変更してから再起動することです(動作します。これを何度も実行しました)。

しかし、私はこのディレクトリにDebianスクリプトを使用するより速くて簡単な解決策が欲しいです。

/usr/share/initramfs-tools/scripts/local-premount

私の考えは、スクリプトを作成してmdの名前を変更し、再起動後にスクリプトを削除することです。

スクリプトを作成しました。

vim /usr/share/initramfs-tools/scripts/local-premount/md

#!/bin/sh -e

PREREQ=""

prereqs()
{
        echo "$PREREQ"
}

case $1 in
# get pre-requisites
prereqs)
        prereqs
        exit 0
        ;;
esac

mdadm --stop /dev/md126
mdadm -A --update=name --name=ibmlinux-root /dev/md126

実行可能にし、initramfsとgrubを更新しました。

chmod +x /usr/share/initramfs-tools/scripts/local-premount/md                                                   
update-initramfs -cv -k all
update-grub2

リブートしたらチャジャン…新しい名前が..127になりましたね! :(

   ls /dev/md/127_0 
   /dev/md/127_0 
   ls /dev/md/ibmlinux-root
   error: no such file or directory

私は何を見逃していますか?また、スクリプトを/etc/initramfs-tools/scripts/init-premount/に入れようとしましたが、何も変更されませんでした。

答え1

私のルート配列が0.90メタデータで作成されたことを忘れました。メタデータ1.2として再生成し(現代のグラブは問題なく起動できます)、名前を更新するために/ etc / mdadm / mdadm.confを編集しました(メタデータ0.90では許可されていません)、MD Raidで命名)

vim /etc/mdadm/mdadm.conf

ARRAY /dev/md/root   metadata=1.2 name=root   UUID=331728d9:c4d12r4f:f589d3ze:01ab3c17
ARRAY /dev/md/backup metadata=1.2 name=backup UUID=429845f1:d5e24f5g:8135dgte:120ff5c0

initramfsとgrubを更新して再起動します。

update-initramfs -cv -k all
update-grub2
shutdown -r now

再起動後...

ls /dev/md
ibmlinux:backup  ibmlinux:root

initramfsを使用するスクリプトは、md127の名前をmd0または必要に応じて変更できます。

/etc/initramfs-tools/scripts/init-premount にスクリプトを生成します。

vim /etc/initramfs-tools/scripts/init-premount/md

#!/bin/sh

# Stop lvm
lvm vgchange -an vg-backup
lvm vgchange -an vg-ppclinux
sleep 3

# Stop raid
mdadm --stop /dev/md126
mdadm --stop /dev/md127
sleep 3

# Assemble with new names 
mdadm -A /dev/md0 /dev/sda2 /dev/sdb2
mdadm -A /dev/md1 /dev/sdc1 /dev/sdd1
sleep 3

# Create the symlinks
mkdir /dev/md
ln -sv /dev/md1 /dev/md/ibmlinux:backup
ln -sv /dev/md0 /dev/md/ibmlinux:root

# Start lvm
lvm vgchange -ay vg-ppclinux
lvm vgchange -ay vg-backup

権限の更新

chmod 755 /etc/initramfs-tools/scripts/init-premount/md

initramfsとgrubのアップデート

update-initramfs -cv -k all
update-grub2

そして再起動後..

find /dev/md -ls
    11344      0 drwxr-xr-x   2 root     root           80 nov  8 06:12 /dev/md
    11345      0 lrwxrwxrwx   1 root     root            8 nov  8 06:12 /dev/md/ibmlinux:root -> /dev/md0
     9440      0 lrwxrwxrwx   1 root     root            8 nov  8 06:12 /dev/md/ibmlinux:backup -> /dev/md1

ログにはこのエラー/警告メッセージのみが表示されます。

PV /dev/md0 9:0 is duplicate for PVID ........ on 9:126 /dev/md126 failed to create online file

しかし、すべてがうまくいきます(pvs、lvcreate、mdadm..)

関連情報