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로 다시 생성했고(현대 grub은 문제 없이 부팅할 수 있음) 이름을 업데이트하기 위해 /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..)