答案1
您無法在 ext4 檔案系統上建立分割區。在磁碟的開頭有一個分割區表(傳統 BIOS 類型或 GTP),它描述了磁碟上有多少個分割區以及有多大。文件系統是在這些分區上建立的。 (Windows 的 NTFS 檔案系統,Linux 的 EXT4 或其他幾種類型。
在你的情況下,你必須這樣做:
- 首先備份您的重要資料。這很關鍵。
- 從筆式磁碟機(或系統磁碟以外的任何來源)啟動 Linux
- 調整 ext4 分割區的大小(縮小)。您無法減少已安裝的分割區,這就是您必須從外部來源啟動的原因。
- 調整系統虛擬分割區的大小使其與減少的 ext4 大小相符。為了安全起見,我建議您使用比 ext4 尺寸大一點的尺寸。因為您使用的是 lvm,所以可以使用 lvresize 來完成此操作。您甚至可以執行步驟 3.+4。立即使用 lvresize --resizefs 選項,這是最安全的選項。
- 現在您必須使用 pvresize 減少物理磁碟區。選擇未來所有 Linux 分割區所需的大小(您可以使用 lvm 動態建立分割區)。
- 現在刪除+重新建立您的底層 GPT 分割區。如果你刪除+重新建立你的分割區必須開始新分區相同的磁區位置比您刪除的分割區要高,否則您將遺失您的 lvm 資料(很可能還有您的檔案系統)。
- 現在您可以為 Windows 建立一個新分割區(或者您可以讓它建立)。 (在此之前我會檢查是否可以啟動linux)。
關鍵指令是(全部以 root 身份,或以 sudo 開頭):
# to list your logical volumes with phyisical pv-s
lvs -o +devices
# if you want 20G linux system disk
lvresize -r /dev/ubuntu-gnome-vg/your-system-lv-name 20G
# if you want preserve 500G for linux (you can use this space for anything)
pvresize --setphysicalvolumesize 500G /dev/sda3
# now resize the 3rd partition on disk1 to 500G (maybe a bit bigger for safety)
fdisk/parted/gparted
# after a reboot you can match up your pv exactly with the physical partition with (this is useful if you used the safe method and created a bit bigger partition eg.510G)
pvresize /dev/sda3
雖然它工作得很好(我做了好幾次),但有點高級的方法,不適合初學者。如果您對lvm/gpt 不太熟悉,備份您的Linux 檔案系統可能會更容易(從啟動CD 掛載它,tar+gzip 整個檔案系統並複製到隨身碟/外部硬碟上)然後建立兩個分割區(三個分割區)事實上,保留小 efi,一個分割區用於 win,一個分割區用於 linux),安裝 Windows,然後從 tar.gz 重新建立你的 linux 檔案系統。無論如何你都應該備份,所以即使你選擇前一種方法,這也可以是你的備份計劃!
其他注意事項:您的 Windows 可能(而且很可能會)覆寫您的啟動管理器(例如 grub),而您的 Linux 將無法啟動。如果是 UEFI/GPT,您可以選擇作業系統,在舊系統上您必須重新安裝 grub。這很簡單,只需從 USB 啟動、chroot 到系統檔案系統並 grub-install /dev/yourharddiskdevname 即可。許多安裝 USB(debian、ubuntu)可以從您的磁碟啟動(那麼您不必 chroot)。
答案2
根據我的經驗,先安裝 Windows,然後再安裝 Linux 會比較容易。
然而,Windows通常需要一個NTFS
分割區。 Windows 會覆蓋grub2
引導管理器有自己的窗戶引導程式。雖然grub2
可以處理啟動 Windows 和 Linux(選擇選單並在 <n> 秒後預設啟動),但 Windows 引導程式僅載入 Windows 作業系統。
- 備份系統
- 調整你的linux分割區大小
NTFS
建立新分割區並使用檔案系統格式化它NTFS
從 Windows 安裝程式媒體(DVD/USB)啟動並在分割區上安裝 Windows- 啟動 linux live 安裝程式媒體
- chroot 你的 Linux 分割區並修復 grub2(更新/重新安裝)
完畢