現在の状況の背景は次のとおりです。私はメンテナンスを担当しているDELL Precision T7600がありますが、ハードドライブを紛失しましたが、幸いにも/homeディレクトリだけがあり、今は復元されました。これで、ダウンタイムを最小限に抑えるために、OSドライブのRAID 1を作成する任務を引き受けました。
Arch-Linux wikiでハードドライブの複製について読んでおり、現在は次の内容に従います。二つ ガイド、最初の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ドライブを2つの空のドライブに複製しました。
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
しばらくして研究、読むと一般的な Google検索、まだ私の状況に合った答えが見つかりません。
時間をかけてコメントありがとうございます!
答え1
まず、既存のディスクの端に少なくとも1 MBの空き容量があることを確認する必要があります。必要に応じて最後のパーティションのサイズを変更します。次に、両方のディスクからRAIDアレイを作成します(元のディスクを最初にリストします)。 RAIDメタデータをディスクの端に配置するには、-e 1.0
スイッチを使用する必要があります。mdadm
自動的に元のドライブの内容を新しいドライブにコピーし始めます。他のドライブからの起動中、または少なくとも読み取り専用でマウントされているすべてのファイルシステムでこれを行う必要があります。完了したら、再起動して grub を再インストールします。 /etc/fstabがUUIDを使用している場合は、これを行う必要があります。そうでない場合は、/dev/sdapYではなく/dev/mdXpYを指すように設定する必要があります。