截至目前,我有一個 500GB 硬碟,其中一個分割區上首先安裝了 Windows,在另一個分割區上安裝了 Ubuntu。由於 Ubuntu 是第二個安裝的,它偵測到 Windows 分割區,並且 Grub 提供了雙啟動。有時,安裝 Ubuntu 後,Windows 磁碟機代號 C 會變更為 D,且 Windows 無法啟動。
問題是,當我想安裝更新版本的Windows時,我安裝了它,現在系統直接啟動到Windows。不提供引導至 Linux 的選項。
那麼兩個問題:
1.當我想要使用較新版本重新安裝 Windows 或 Linux 時,如何防止雙啟動選項被忽略?
2.有沒有辦法讓Windows分割區和Linux分割區完全不知道對方呢?也許透過使用第三方引導程序,它可以檢測磁碟上有哪些作業系統並允許我選擇要引導到的作業系統,還允許我完全刪除/用新作業系統替換其中一個作業系統,並且仍然能夠啟動到該作業系統(Windows) 或未受影響的Linux 作業系統嗎?
答案1
重新安裝 Windows 的問題是因為它與其他作業系統(其他作業系統)的兼容性不太好,它會自動覆蓋 MBR 以指向自身,這就是為什麼您必須重新安裝引導程式才能獲得雙重開機。
將引導程式安裝到 USB 隨身碟怎麼樣?這樣您就可以繼續安裝/更新 Windows,而無需擔心,當您想要啟動 Linux 時,您只需插入 USB 記憶棒即可啟動 Linux。您甚至可以在 Linux 中變更 fstab,這樣它就不會掛載 Windows 分割區。
安裝 Linux,然後從新的 Linux 安裝:
將 USB 歸零
dd if=/dev/0 of=/dev/sdd
在 USB 的開頭建立一個 128 mb 的分割區
fdisk /dev/sdd ... 使用 'n' 建立分割區 mkfs -t ext2 /dev/sdd1 mkdir /tmp/myusb mount /dev/sdd1 /tmp/myusb mkdir /tmp/myusb/boot
將 grub 安裝到 USB,確保引導目錄位於 USB 驅動器上:
grub-install --boot-directory=/tmp/myusb/boot /dev/sdd
編輯 /etc/grub.d/40_custom 並新增以下內容(msdos1 是第一個 Windows 分割區)
menuentry "WINDOWS"{ set root='(hd0,msdos1)' chainloader +1 }
更新 grub 配置,輸出到 USB。
update-grub --output=/tmp/myusb/boot/grub/grub.cfg
大部分資訊來自以下部落格: http://jarrodla.blogspot.co.uk/2014/04/hp-microserver-gen8-boot-from-5th-sata.html