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

Source: https://habr.com/ru/post/J248073/


All Articles