我正在嘗試使用 Windows、Ubuntu 和 Kali 進行三重啟動。但我的 SSD 中已經有 4 個分割區。這些都是:
- 100 MB NTFS(系統、活動、主分割區)
- Windows
C:
(啟動、頁面檔案、故障轉儲、主分割區) - 824 MB(復原分割區)
- 25 GB(主分割區)-這是安裝的 Ubuntu。
我知道 Windows 和 Ubuntu 分割區,但其他兩個分割區我不知道為什麼它們位於單獨的分割區而不是 Windows 分割區。我怎麼才能將這些分割區「合併」在一起,以便為 Kali 建立另一個分割區?或者除非我卸載 Ubuntu 或 Windows,否則不可能嗎?
選擇空閒分割區:
選擇自動佔用最大可用空間的引導式可用分割區選項:
答案1
答案2
您很可能有四個主分割區。 Ubuntu 的輸出sudo fdisk -l /dev/sda
(sda
如有必要,用正確的名稱替換)將非常有用,但我會盡力在沒有它的情況下提供幫助。
現在我可以建議一個一般場景來解決您的問題。請記住,我還沒有對它進行整體測試。
由於還沒有fdisk
輸出,我將做出一些假設。我們最終可以稍後糾正它們。假設是:
- 驅動器位於
/dev/sda
Linux 中; - 它有 DOS MBR,而不是 GPT;
- 四個分區中的每一個都是主分區;
- 邏輯扇區大小為512 B;
- 分割區編號與您的編號清單相對應;
- 分區順序和數字匹配(
sda1
優先sda2
等); - 引導程式是 grub2。
正如acejavelin所說:
DOS MBR 允許 4 個主分割區,或 3 個主分割區和 1 個擴充分割區
目的是將 Ubuntu 的主分割區「轉換」為擴充分割區內的邏輯分割區。 Kali 的分割區稍後將會新增為擴展分割區中的下一個邏輯分割區。
準備中
- 在開始之前閱讀我的整個答案,以了解整體情況。根據您目前的分割區對齊方式和所需的分割區對齊方式,可能會跳過某些步驟;我的意思是主要是搞亂Windows。
- 備份您的重要數據。
- 讀兩遍,思考三遍,檢查你的數字三遍- 然後做。
- 取得任何像樣的 Live CD/DVD Linux – 例如 Knoppix 或 Ubuntu 安裝程式(在嘗試Ubuntu模式;也許 Kali 安裝程式也有這樣的模式,我不知道)。最重要的是要有
gparted
。你已經安裝的 Ubuntu 在這裡沒有用,因為我們當時無法安裝它的分割區。 - 如果您需要調整 Windows 分割區大小(請參閱移動分區部分),啟動進入 Windows 並
chkdsk
在C:
.它可能需要重新啟動,因此重新啟動並引導回 Windows。 - 同樣,如果您需要調整 Windows 分割區大小,請按鍵盤上的 WIN+R 並鍵入
shutdown -s -t 0
,然後按 Enter。在調整分割區大小之前,請勿再次啟動至 Windows。如果意外發生,請使用上述命令關閉。 (此步驟在 Windows 8、8.1、10 上可能很重要,可以完全關閉它。無論版本如何,它都不會造成任何損害,所以無論如何都要這樣做。) - 啟動進入 Ubuntu。檢查
/etc/fstab
和是否/boot/grub/grub.cfg
引用分區 by/dev/sdaX
或 by通用唯一識別符。每次出現的 都/dev/sda4
必須/dev/sda5
稍後替換,我們會解決它的。透過 UUID 進行引用應該沒有問題。
移動分區
從 Live CD 啟動 Linux。如果您選擇的 Live CD 自動安裝/dev/sda*
–umount
它們。
跑步sudo gparted /dev/sda
。如果我的假設是正確的,它將顯示:
sda1
一開始很小,- 很大
sda2
,旁邊有窗戶sda1
, - 小
sda3
追隨者sda2
, - 終於,
sda4
Ubuntu 接近尾聲了。
我不知道你給卡利留了什麼地方。可能是在最後,就在 Ubuntu 之後;或者就在之前。
gparted
允許您對操作進行排隊,以便您可以在進行真正的更改之前取消其中任何操作。
請勿觸摸sda1
。不要碰 的開頭sda2
。否則可能會導致您的 Windows 無法啟動。您可以透過移動末端來縮小 Windows 分割區sda2
,它不會影響啟動。如果您想為 Kali 和/或 Ubuntu 獲得更多空間,請執行此操作。在這種情況下,也要移動,以便和sda3
之間沒有可用空間。sda2
sda3
移動/調整 Ubuntu 的大小,以便在和之間有 1 MB間隙sda4
(可用空間)。在磁碟的最後為 Kali 留出空間。sda3
sda4
注意:我認為我們只需要一個扇區的間隙,所以 1 MB 就足夠了;gparted
可能會讓它變得更大。不幸的是,這個工具適用於兆字節,而不是扇區。命令列工具parted
可以處理扇區,但它不太友好,並且可能無法調整 ntfs 的大小 - 這就是我選擇的原因gparted
。
應用所有變更並等待結果。移動分區需要時間。
希望一切順利。透過啟動至 Ubuntu、Windows 進行健全性檢查。預計它將chkdsk
在調整大小的 Windows 分割區上運行。
建立擴充分割區和邏輯分割區
再次從 Live CD/DVD 啟動。將您的 MBR(主開機記錄,它包含分割區表)儲存到檔案中:
sudo dd if=/dev/sda of=~/mbr.dd bs=512 count=1
如果出現錯誤,可以使用下列命令還原分割區表:
sudo dd if=~/mbr.dd of=/dev/sda
不幸的是,MBR 備份對於邏輯分割區來說是不夠的,但如果你弄亂它們,它可以最大限度地減少對主分割區的損壞。從現在開始要格外小心。
跑步sudo fdisk /dev/sda
;它與自己的一組命令進行互動。更改是透過w
命令儲存到磁碟的,而不是更早儲存到磁碟。如果出現問題,請使用q
命令退出並重新開始。
在裡面fdisk
呼叫p
命令來查看分割區表。 (在紙上)寫下 的起始磁區和結束磁區/dev/sda4
,因為它是我們需要刪除的主分割區,然後按照邏輯重新建立。驗證你的筆記三次。
的起始磁區/dev/sda2
可能比 的結束磁區大 1 /dev/sda1
;這意味著它們之間沒有差距。這同樣適用於sda3
和sda2
配對。然而sda4
和之間應該有一個間隙sda3
。取得 的結束扇區/dev/sda3
,添加一個並將結果寫成延長啟動時間。驗證數字三遍。確保它的數字小於 的開頭數字sda4
。
用指令刪除4號分割區d
。請注意,即使您現在將更改寫入磁碟,它也不會真正破壞您的 Ubuntu。資料仍然存在,fdisk
只是丟失了分區所在位置。稍後您將把它重新建立為邏輯分割區。
使用命令建立新分區n
;讓它成為擴展分區。fdisk
將建議一個起始扇區,其編號正是您的延長啟動時間value – 檢查是否匹配,如果匹配則按回車鍵。然後它會建議一個結束磁區作為磁碟的最後一個可用磁區 - 這是正確的事情,按 Enter 鍵。
再次使用n
命令建立新分區。它將是編號為 5 的邏輯分割區sda4
。
您可能會注意到這些數字使sda4
分區包含sda5
。沒錯,邏輯分割區必須全部位於擴充分割區內。 Kali Linux 應該能夠在內部建立自己的擴充分割區,sda4
因為還有剩餘空間。
新的分割表仍然僅在記憶體中(磁碟尚未受到影響)。用命令檢查一下p
。在使用 編寫之前w
,請仔細檢查以下幾件事:
sda5
83
預設應顯示 ID= ;該值適合 Linux。如果不同的話使用t
命令將其更改為。83
sda5
應該顯示起始和結束扇區,因為它們是原始的sda4
。- 新的
sda4
應該從最後一個扇區之後的扇區開始sda3
;該數字應小於sda5
起始扇區。
上面列表中的第三個位置非常重要。稍後您將把更改寫入磁碟。有關分區 1-4 的資訊將儲存在 MBR 中。此更改可以透過我們所做的 MBR 備份來還原。但邏輯分割區的資訊sda5
將儲存在擴充分割區的開頭sda4
。至關重要的是,sda4
從沒有數據的正確位置開始——這就是我們創造的差距。如果您錯過了這個間隙,您可能會立即丟失一些資料。
經過三次檢查後,呼叫w
命令將更改寫入磁碟。fdisk
應該告訴內核有關新分區的信息,因此應該可以/dev/sda5
掛載。現在這就是你的 Ubuntu。
(如果沒有/dev/sda5
節點,請嘗試sudo partprobe
修復它。)
更新文件(如果需要)
一開始我建議檢查你的 Ubuntufstab
和/或是否grub.cfg
使用/dev/sda4
UUID。從現在開始,舊的sda4
將是sda5
,因此文件可能需要更新。我認為這樣做是安全的,即使文件沒有提到sda4
,所以當有任何疑問時就這樣做。第一個掛載:
sudo mount -o rw /dev/sda5 /mnt
您將發現這些文件為/mnt/etc/fstab
和/mnt/boot/grub/grub.cfg
。不要混淆/etc/fstab
哪一個屬於 Live CD Linux,與您的 Ubuntu 無關。做好備份以防萬一,並將每個替換sda4
為sda5
.這可以透過一個命令來完成:
sudo sed -i.backup 's/sda4/sda5/' /mnt/etc/fstab /mnt/boot/grub/grub.cfg
最後重新啟動並檢查兩個系統是否如預期啟動。 Kali Linux 現在應該能夠在安裝過程中利用可用空間。