私が触れたいトピックは非常に人気があり、多くのリソースで検討されていますが、異なるバージョンの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