Debian
如何在軟體 RAID 磁碟上安裝 grub?
我正在執行帶有
mdadm
RAID 1 的 Debian 9。以前兩個硬碟都可以啟動到作業系統,現在只有一個可以。我最近有一個需要更換的故障磁碟,所以我更換了它。
首先,我跑了
mdadm --add /dev/md0 /dev/sda
效果很好。在那之後我跑了
grub-install /dev/sda
這給了我以下輸出:
Installing for i386-pc platform. grub-install: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image.. grub-install: error: unable to identify a filesystem in hd0; safety check can't be performed.
這是我的輸出
lsblk
:sda 8:0 0 447.1G 0 disk └─md0 9:0 0 232.8G 0 raid1 ├─md0p1 259:0 0 14.9G 0 md [SWAP] ├─md0p2 259:1 0 1K 0 md ├─md0p3 259:2 0 216G 0 md / └─md0p5 259:3 0 1.9G 0 md /boot sdb 8:16 0 5.5T 0 disk ├─sdb1 8:17 0 5.5T 0 part └─sdb9 8:25 0 8M 0 part sdc 8:32 0 5.5T 0 disk ├─sdc1 8:33 0 5.5T 0 part └─sdc9 8:41 0 8M 0 part sdd 8:48 0 232.9G 0 disk └─sdd1 8:49 0 232.9G 0 part └─md0 9:0 0 232.8G 0 raid1 ├─md0p1 259:0 0 14.9G 0 md [SWAP] ├─md0p2 259:1 0 1K 0 md ├─md0p3 259:2 0 216G 0 md / └─md0p5 259:3 0 1.9G 0 md /boot
這是來自的輸出
mdadm --detail /dev/md0
:/dev/md0: Version : 1.2 Creation Time : Wed Dec 12 15:26:35 2018 Raid Level : raid1 Array Size : 244066304 (232.76 GiB 249.92 GB) Used Dev Size : 244066304 (232.76 GiB 249.92 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Intent Bitmap : Internal Update Time : Thu May 28 18:59:51 2020 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Name : localserver:0 (local to host localserver) UUID : 83d5a386:66110e10:e5f3c600:734423a8 Events : 5339803 Number Major Minor RaidDevice State 2 8 0 0 active sync /dev/sda 1 8 49 1 active sync /dev/sdd1
我試過用 just 引導
/dev/sda
,但無濟於事。我也嘗試過 runningblockdev --flushbufs /dev/sda
,正如一些人推薦的那樣,但無濟於事。執行GParted時,我可以看到有boot和raid
/dev/sdd1
標誌,而沒有標誌。我還看到’ 的第一個扇區從 0 開始,而’ 的第一個扇區從 2048 開始。/dev/sda``/dev/sda``/dev/sdd1
誰能建議我可以解決這個問題的方法?
我不介意分離“奇怪”的硬碟驅動器,格式化它,然後重新連接它。
好的 - 這就是我解決它的方法。
/dev/sdd
有一個稱為分區/dev/sdd1
並且該扇區從 2048 開始的事實非常有幫助。Arch Wiki 上的這篇wikiarticle 也有很大幫助。關鍵是要以完全相同的方式對兩個 rives 進行分區。
- 讓我們從軟體 raid 中刪除不允許我們在其上安裝 GRUB 的磁碟:
mdadm --fail /dev/md0 /dev/sda mdadm --remove /dev/md0 /dev/sda
- 神奇的一點來了。使用
sfdisk
,讓我們保存工作磁碟的分區資訊,然後對有問題的磁碟進行重新分區:sfdisk -d /dev/sdd > raidinfo-partitions.sdd sfdisk /dev/sda < raidinfo-partitions.sdd
瞧!
- 讓我們將磁碟重新添加到我們的軟體 RAID 陣列中:
mdadm --add /dev/md0 /dev/sda1
- 最後,當兩個驅動器同步後,讓我們安裝 grub:
grub-install /dev/sda