현재 상황에 대한 배경은 다음과 같습니다. 제가 유지 관리를 담당하고 있는 DELL Precision T7600이 있는데, 하드 드라이브를 잃어버렸는데 다행히 /home 디렉토리만 있고 지금은 복원되었습니다. 이제 가동 중지 시간을 최소화할 수 있도록 OS 드라이브의 RAID 1을 만드는 임무를 맡았습니다.
Arch-Linux 위키에서 하드 드라이브 복제에 대해 읽었으며 현재 다음 내용을 따르고 있습니다.둘 가이드, 첫 번째 grub2 구성으로 기울고 있지만 프로세스를 이해할 수 없습니다. 아마도 제가 이것을 너무 복잡하게 만들고 있는 것 같지만 이것은 간단한 dd if=/dev/sdc of=/dev/md126
명령입니다. dd
장치 파일에서 배열로 이동하는 것이 가능하거나 권장됩니까? 여기에 모범 사례가 무엇인지 잘 모르겠습니다.
/dev/md0 장치에 접근 해 보았 dd
으나 원래 장치보다 조금 작아서 dd
에 복사할 수 없다는 오류가 발생했습니다 /dev/md0
. 또한 어레이 부팅을 시도했지만 error: file '/grub/i386-pc/normal.mod' not found.
멈춰서 grub rescue>
, 무엇을 관리해야 할지 모르겠습니다. 그래서 grub-install
작동하기 위해 어레이를 마운트하려고 시도했지만 mount
다음과 같이 실패했습니다.unknown filesystem type 'linux_raid_member'
다음 명령을 실행하여 OS 드라이브를 두 개의 빈 드라이브에 복제했습니다.
sudo pv /dev/sdc | tee >(dd of=/dev/sda) >(dd of=/dev/sdb) | dd of=/dev/null
첫 번째 시도와 같이 grub 오류 없이 내 OS 드라이브를 성공적으로 복제했습니다. Grub이 로드되었지만 OS 부팅에 실패하여 dracut 패닉 모드에 갇혔습니다. sfdisk -d /dev/sdc | sfdisk /dev/sda
에 대해 LiveUSB에서 다음 명령을 실행하여 이 문제를 제거했습니다 sdb
.
이번에는 Fedora가 로드되었지만 패닉 모드에 갇혔습니다. 적어도 제 경우에는 /etc/fstab
이전에 처리했던 것처럼 존재하지 않는 항목으로 인해 발생했습니다. 그래서 /
파티션 만 마운트하기 위해 fstab을 다듬었습니다 .
이제 다음을 실행합니다.
sudo mdadm --create --verbose /dev/md0 --level=mirror --raid-devices=2 /dev/sda /dev/sdb
내 Live USB 스틱에서 어레이를 생성했지만 이 작업을 완료한 후에도 드라이브가 여전히 부팅되지 않습니다. 그래서 dd
각각의 파티션으로 다시 파티션을 나누어야 했습니다 . 나는 다시 원점으로 돌아왔다.sdc2
sdc3
sdb
이번에는 3개의 별도 RAID 파티션을 만들기로 결정했습니다. 그리고 다음이라는 파일을 만들었습니다 /etc/grub.d/09_raid1_setup
.
menuentry 'Fedora RAID 1' --class fedora --class gnu-linux --class gnu --class os {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
insmod mdraid1x
set root='(md/2)'
search --no-floppy --set=root /dev/md2
linux /vmlinuz-3.18.9-100.fc20.x86_64 root=/dev/md3 ro
initrd /initramfs-3.18.9-100.fc20.x86_64.img
}
그런 다음 새 것을 다시 만들고 실행하여 /boot/grub2/grub.cfg
initramfs 를 업데이트했습니다.grub2-mkconfig -o /boot/grub2/grub.cfg
dracut -f /boot/initramfs-currentimage
sdb
또한 다음과 같이 파티션 테이블과 일치 하도록 파티션 테이블을 변경하지 않는 실수를 저질렀습니다 sda
.
Part. # Size Partition Type Partition Name
----------------------------------------------------------------
1007.0 KiB free space
1 1024.0 KiB BIOS boot partition
2 500.0 MiB Linux RAID
3 97.7 GiB Linux RAID
4 2.6 TiB Linux RAID
455.5 KiB free space
initramfs 이미지를 생성하고 업데이트하기 전까지는 말이죠 grub.cfg
.
이제 lsblk의 출력은 다음과 같습니다.
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 2.7T 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 500M 0 part
├─sda3 8:3 0 97.7G 0 part /
└─sda4 8:4 0 2.6T 0 part
sdb 8:16 0 2.7T 0 disk
├─sdb1 8:17 0 1M 0 part
├─sdb2 8:18 0 500M 0 part
│ └─md2 9:2 0 499.7M 0 raid1 /boot
├─sdb3 8:19 0 97.7G 0 part
│ └─md3 9:3 0 97.6G 0 raid1
└─sdb4 8:20 0 2.6T 0 part
└─md4 9:4 0 2.6T 0 raid1
sdc 8:32 0 2.7T 0 disk /home
그리고 /etc/fstab
는:
/dev/md3 / ext4 defaults 1 1
/dev/md2 /boot ext4 defaults 1 2
UUID=f9fba42e-80f4-41b1-b309-88b22f642907 /home ext4 defaults 1 2
얼마 후에연구,읽다, 그리고일반적인 구글 검색, 아직 내 상황에 맞는 답변을 찾을 수 없습니다.
시간을 내어 의견을 보내주셔서 감사합니다!
답변1
먼저, 기존 디스크 끝에 최소 1MB 정도의 여유 공간이 있는지 확인해야 합니다. 필요한 경우 마지막 파티션의 크기를 조정합니다. 그런 다음 두 디스크 모두에서 RAID 어레이를 생성하십시오(원래 디스크를 먼저 나열하십시오). RAID 메타데이터를 디스크 끝에 배치하려면 -e 1.0
스위치를 사용해야 합니다 . mdadm
자동으로 원래 드라이브의 내용을 새 드라이브에 복사하기 시작합니다. 다른 드라이브에서 부팅하는 동안 또는 적어도 읽기 전용으로 마운트된 모든 파일 시스템에서 이 모든 작업을 수행해야 합니다. 완료되면 재부팅하고 grub을 다시 설치하십시오. /etc/fstab이 UUID를 사용하는 경우 이를 수행해야 합니다. 그렇지 않은 경우 /dev/sdapY가 아닌 /dev/mdXpY를 가리키도록 설정해야 합니다.