我的 Windows 7 遇到了雲端只能透過重新安裝才能修復的問題。但這不僅僅是我筆記型電腦上的一個系統,另一個是 Debian Jessie。意識到傳入的 GRUB 覆蓋後,我備份了文件並再次安裝了 Win 7。之後我嘗試恢復 GRUB,但遇到了一系列問題。
之前安裝Debian 時,我建立了包含三個分割區的LVM,第一個用於/root,第二個用於/home,第三個用於交換分割區,並在Debian 安裝期間使用cryptLuks 最後對所有分割區進行加密。在我嘗試修復它時,我使用了以下命令:
1)我需要做的是解密這些分割區:
cryptsetup luksOpen /dev/mapper/Debian-System System
cryptsetup luksOpen /dev/mapper/Debian-Home Home
2)接下來我使用指令vgchange-ay,
3)之後我使用以下命令安裝了所有內容:
/* Debian-System is partition with system */
mount /dev/mapper/Debian-System /mnt/
/* but I cannot mount it */
mount: unknown filesystem type 'crypto_LUKS'
/* so I used System, which is decrypted Debian-System */
mount /dev/mapper/System /mnt/
mount /dev/mapper/Home /mnt/home/
/* dev/sda1 is my boot partition */
mount /dev/sda1 /mnt/boot/
mount -o bind /dev/ /mnt/dev/
mount -o bind /sys/ /mnt/sys/
mount -o bind /proc/ /mnt/proc/
4)我chroot編輯到 Debian(我使用 x64 Ubuntu 16.04 Live DVD 來修復它)並執行了命令:
grub-install
然後:
update-grub
一切看起來都不錯,但細節決定成敗。透過使用系統反而Debian 系統掛載並稍後更新 GRUB、UUIDgrub設定檔/root 分區也發生了變化。我編輯了這個文件並將 UUID 更改為Debian 系統一。但我不確定這是否足夠(可能不夠,因為在此過程中創建的文件很少)。
重新啟動後,我再次看到熟悉的Debian啟動選單,選擇Debian,然後成功輸入/dev/mapper/Debian-System的密碼。好消息到此結束 - 我收到以下訊息:
modprobe module luks not found in modules.dep
target filesystem doesn't have requested /sbin/init
我被扔到內置外殼(灰)。
我發現使用命令 update-initramfs 可以提供幫助,因此我在下次執行 Ubuntu LiveDVD 時使用了它。我收到以下文字:
device-mapper: table ioctl on Debian-System_crypt failed: No such device or address
Command failed
cryptsetup: WARNING: failed to determine cipher modules to load for Debian-System_crypt
cryptsetup: WARNING: target Debian-Swap_crypt has a random key, skipped
之後重新啟動系統會導致比第一次更糟糕的結果;詢問 Debian 系統密碼的過程立即被跳過,我和我被扔到內建 shell (ash) 中。現在,即使再次執行所有操作(不更新 initramfs)也無濟於事 - 我總是重複相同的行為,就像更新 initramfs 後一樣。
我做錯了什麼嗎?還有其他程式(順便說一句)可以修復 Debian 和 GRUB 而無需重新安裝嗎?當然,我可以透過重新安裝來修復它,但我更願意避免它。除非沒有其他選擇。
謝謝你的幫助 :)