Linux

將擴展分區內的邏輯分區轉換為擴展分區外的主分區

  • April 30, 2018

我正在嘗試創建一個主分區來安裝 Win10(在 sda8 上),因為我現在需要將它用於某些事情。我不認為我會需要 Windows,我想做的事情不在 VM 中工作,因此安裝。我在不同的論壇上發現了一些文章試圖將邏輯分區更改為主分區,但我不確定我是否可以遵循這些文章,因為我的邏輯分區位於擴展分區內。

我是否正確地說 sda1 是主要的,sda2 是擴展的並且包含 sda 5-8 個邏輯分區。Gparted 不允許我這樣做或調整 sda2 的大小以獲取它之外的未分配空間以供使用。sda 5-7 是我的 /、/home 和 /storage 需要保持不變。

是否可以在擴展之外獲取 sda8 並作為安裝 Win10 的主分區。使用 sfdisk 或免費的 live usb。

我目前從 fdisk 獲得了這個分區佈局:

Disk /dev/sda: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x2f009394

Device     Boot      Start        End    Sectors   Size Id Type
/dev/sda1             2048   46874623   46872576  22.4G 82 Linux swap / Solaris
/dev/sda2         46876670 3907028991 3860152322   1.8T  5 Extended
/dev/sda5         46876672  105467903   58591232    28G 83 Linux
/dev/sda6        105469952  979630079  874160128 416.9G 83 Linux
/dev/sda7       1082032128 3907028991 2824996864   1.3T 83 Linux
/dev/sda8        979632128 1082030079  102397952  48.8G  7 HPFS/NTFS/exFAT

Partition table entries are not in disk order.

這來自 sfdisk:

label: dos
label-id: 0x2f009394
device: /dev/sda
unit: sectors

/dev/sda1 : start=        2048, size=    46872576, type=82
/dev/sda2 : start=    46876670, size=  3860152322, type=5
/dev/sda5 : start=    46876672, size=    58591232, type=83
/dev/sda6 : start=   105469952, size=   874160128, type=83
/dev/sda7 : start=  1082032128, size=  2824996864, type=83
/dev/sda8 : start=   979632128, size=   102397952, type=7

謝謝利亞姆

給定 sda8(NTFS 分區)的位置,您將不得不執行一些分區操作來創建額外的主分區:

  1. 將您的 NTFS 分區備份到另一個驅動器。使用partclone之類的工具很容易做到這一點。
  2. 刪除 sda8。
  3. 使用gparted,將 sda7 ( /storage) 移動到通過刪除 sda8 釋放的未分配空間中;當然,儘管保留了相同的分區大小。
  4. 從尾部(右側)收縮擴展分區 sda2 以釋放擴展分區之外的空間。
  5. 創建一個新的主分區。
  6. 將 NTFS 分區從備份還原到新的主分區。

簡而言之,您將刪除 sda8 以釋放 sda6 和 sda7 之間的空間,之後您將移動 sda7 以可用空間移動到擴展分區的尾部。此時您應該能夠縮小擴展分區。

警告

當然,在您執行任何此操作之前,我強烈建議您備份所有重要的內容。

引用自:https://unix.stackexchange.com/questions/440734