2021年10月15日 星期五

[Open Media Vault] fsarchiver 還原後無法開機 | 重新安裝grub


使用openmediavault-backup 5.2.4插件搭配fsarchiver備份OMV系統,但在復原系統後開機grub沒有顯示OMV無法開機。

$ sudo dd if=backup.grubparts of=/dev/sdb

一開始使用dd將分割表寫入到硬碟中,但是遇到了一個問題。因為backup.grubparts紀錄的是前
一顆硬碟的分割表,假如當時的sdb1硬碟分區有498GB,但是卻想要把系統安裝在126GB的硬碟分區裡,這個時候就會遇到分割區超出126GB,不符合邏輯。不可能有128GB的硬碟可容納498GB的分區。想個了解分割區可參考以下文章:
經過了無數次的測試得出了一個結論,除非想還原原本系統的分割區大小,否則並不需要寫入分割表backup.grubparts到硬碟裡,可使用GPart、fdisk工具分割磁碟。
原本懷疑是BOIS MBR、GPT不相容的問題。但從此篇看起來,並非是分割表的問題。


*紅色字體代表主要的系統分區
*如果不懂dd fsarchiver fdisk ...指令用法,請先查明用法後再謹慎操作,以免資料遺失


分區結構
$ sudo fdisk -l /dev/sdb
Disk /dev/sdb: 149.5 GiB, 160041885696 bytes, 312581808 sectors
Disk model: 00BUCT-63TWBY0  
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x36697731

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sdb1  *         2048 310585343 310583296 148.1G 83 Linux
/dev/sdb2       310585344 312581807   1996464 974.9M  5 Extended
/dev/sdb5       310587392 312581807   1994416 973.9M 82 Linux swap / Solaris

$ lsblk
sdb           8:16   0 149.1G  0 disk 
├─sdb1        8:17   0 148.1G  0 part
├─sdb2        8:18   0     1K  0 part 
└─sdb5        8:21   0 973.9M  0 part 

使用fsarchiver還原系統

backup.grub:安裝grub的前446個Bytes
backup.fsa:備份的檔案系統內容

$ sudo dd if=backup.grub of=/dev/sdb1
$ sudo fsarchiver restfs backup.fsa id=0,dest=/dev/sdb1

但開機以後畫面一片黑,估計是Grub沒有安裝完整。
因此,重新安裝grub或許能夠無法開機問題。

$ sudo su 
$ mount /dev/sdb1 /mnt
$ mount --bind /dev /mnt/dev
$ mount --bind /dev/pts /mnt/dev/pts
$ mount --bind /proc /mnt/proc
$ mount --bind /sys /mnt/sys
$ chroot /mnt
$ grub-install --force /dev/sdb1
$ grub-install --recheck --force /dev/sdb1
$ update-grub
$ exit 
$ umount /mnt/sys
$ umount /mnt/proc
$ umount /mnt/dev/pts
$ umount /mnt/dev
$ umount /mnt

重新安裝grub後,成功看到grub的選單。

參考

沒有留言:

張貼留言