Centos 7はソフトウェアRAID 1に変換します

私が触れたいトピックは非常に人気があり、多くのリソースで検討されていますが、異なるバージョンのGRUBブートローダーと別のバージョンのOSについてです。



前文



システム自体はキックスタートでインストールされたため、インストールされたCentos 7を手動モードでソフトウェアRAIDレベル1に転送する必要がありました。 この問題に関する情報を検索したところ、OSの古いバージョンとGRUBブートローダーの最初のバージョンでのみ資料が見つかりました。



方法が似ていると判断しましたが、コマンドを変更するだけで、彼は仕事に取りかかり、「dracut」でニュアンスを見つけました。

何らかの理由で、「dracut」によって作成されたinitramfsは、収集されたraidを表示せず、ロードを拒否します。 「dracut」のバージョンは033です。



プロット



解決策が見つかりました。これは、オプション「rd.auto = 1」(利用可能なすべてのRAIDデバイスを自動的に検出して実行するオプション)をオンにしてカーネルに送信することで構成されます。



以下に、インストールされたOSをソフトウェアRAIDレベル1に変換して、必要な人を非難または支援するための一連のコマンドを示します。



ソースデータ



ドライブ/ dev / sda、on / dev / sda1は4GBシステムです。

/ dev / sdbドライブは完全に空です。



チーム



1.パーティションをsdaからsdbに完全にコピーします。



sfdisk -d /dev/sda | sfdisk /dev/sdb
      
      





2. fdiskを使用して、id 83をfdからsdb1に変更します。



 fdisk /dev/sdb
      
      





3. 1つのディスクでRAIDレベル1を作成します。



 mdadm --create /dev/md0 --level=1 --raid-devices=2 missing /dev/sdb1
      
      





4.結果の/ dev / md0をフォーマットします:



 mkfs.ext4 /dev/md0
      
      





5. / dev / md0をマウントします。



 mount /dev/md0 /mnt/
      
      





6.現在のシステムを/ dev / md0にコピーします。



 rsync -axu / /mnt/
      
      





7.新しいルートに現在のシステムに関する情報をマウントし、その中にchrootを作成します。



 mount --bind /proc /mnt/proc && mount --bind /dev /mnt/dev && mount --bind /sys /mnt/sys && mount --bind /run /mnt/run && chroot /mnt/
      
      





8. uuid / dev / md0を取得してfstabに追加し、そこでuuid sda1をuuid md0に置き換えます。



 ls -l /dev/disk/by-uuid |grep md >> /etc/fstab && vim /etc/fstab
      
      





9. md0が再起動時に名前を変更しないように、mdadmの構成を作成します。



 mdadm --detail --scan > /etc/mdadm.conf
      
      





10.必要なモジュールを使用して、新しいinitramfsを作成します(ここではdracutも失望させます)。



 mv /boot/initramfs-3.10.0-123.el7.x86_64.img /boot/initramfs-3.10.0-123.el7.x86_64.img.bak dracut /boot/initramfs-$(uname -r).img $(uname -r)
      
      





11.「GRUB」を介してカーネルにオプション「rd.auto = 1」を明示的に渡します。このため、「GRUB_CMDLINE_LINUX」に追加します。



 vim /etc/default/grub
      
      





12.「GRUB」設定を書き換えて、sdbドライブにインストールします。



 grub2-mkconfig -o /boot/grub2/grub.cfg && grub2-install /dev/sdb
      
      





13. uuid md0とオプション「rd.auto = 1」が正確に記述されていることを確認します。



 cat /boot/grub2/grub.cfg
      
      





14.マシンを再起動し、BIOSブートメニューからハーフレイドのディスクを選択します



15.ダウンロードが成功したら、SDAをRAID部分に再実行します。 fdiskを介してid 83をfdに変更し、ディスクをraidに追加して、ディスクに「GRUB」を再インストールします。



 fdisk /dev/sda mdadm --manage /dev/md0 --add /dev/sda1 grub2-install /dev/sda
      
      





その後、/ proc / mdstatを介してraidがどのように構築されるかを見て、最初のディスクから起動することができます。



UPD:rd.auto = 1を使用しているため、LVMがソフトウェアRAIDセクションにある場合、LVMの問題に気づきます-LVMセクションは再起動後に利用できなくなります。 これを防ぐには、次を実行する必要があります。

パラグラフ11では、「rd.auto = 1」の代わりにmdadm.confに入れたrd.md.uuid = UUIDを渡す必要があります。これにより、ルートをロードするために収集するraidセクションを明示的に示します。



バグに関するリンクと解決策:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=725759



All Articles