如何使用fdisk擴展邏輯分區和擴展分區

如何使用fdisk擴展邏輯分區和擴展分區

我正在嘗試擴展分區/dev/sda5,它是擴展分區/dev/sda2下的邏輯分區。

我想用軟碟

步驟應該是刪除兩個分割區,然後使用完全相同的起始磁區(1001470 和 1001472)重新建立它們。一切順利,直到創建最小起始扇區更大的邏輯分區(1003518)比它需要的更多。

$ sudo fdisk /dev/sda
命令(m 尋求幫助):p
磁碟 /dev/sda:9.8 GiB,10485760000 字節,20480000 個磁區
單位:磁區 1 * 512 = 512 位元組
扇區大小(邏輯/物理):512 位元組/512 位元組
I/O 大小(最小/最佳):512 位元組/512 位元組
磁碟標籤類型:dos
磁碟標識符:0x0cd7105f

裝置引導起始結束磁區大小 ID 類型
/dev/sda1 * 2048 999423 997376 487M 83 Linux
/dev/sda2 1001470 16775167 15773698 7.5G 5 擴展
/dev/sda5 1001472 16775167 15773696 7.5G 83 Linux


分割區 5 已刪除。
分割區 2 已刪除。

命令(m 尋求幫助):n
隔間類型
   p 主要(1 個主要、0 個擴充、3 個免費)
   e 擴充(邏輯分割區的容器)

選擇(預設p):e
分區數(2-4,預設2):
第一區(999424-20479999,預設999424):1001470
最後一個扇區,+sectors 或 +size{K,M,G,T,P}(1001470-204799999,默認20479999):
建立了類型為「擴充」且大小為 9.3 GiB 的新分割區 2。

命令(m 尋求幫助):n
主分割區的所有空間均已使用。
新增邏輯分割區5
第一區(1003518-20479999,默認1003520):1001472

值超出範圍。

我已經做到了分手了,但用 fdisk 應該可以。

$ fdisk -V
fdisk from util-linux 2.27.1

答案1

採取的步驟根據吉爾斯的答:

$ sudo fdisk /dev/sda

歡迎使用 fdisk (util-linux 2.27.1)。
更改將僅保留在記憶體中,直到您決定寫入它們。
使用寫入命令之前請務必小心。


命令(m 尋求幫助):p
磁碟 /dev/sda:9.8 GiB,10485760000 字節,20480000 個磁區
單位:磁區 1 * 512 = 512 位元組
扇區大小(邏輯/物理):512 位元組/512 位元組
I/O 大小(最小/最佳):512 位元組/512 位元組
磁碟標籤類型:dos
磁碟標識符:0x0cd7105f

裝置引導起始結束磁區大小 ID 類型
/dev/sda1 * 2048 999423 997376 487M 83 Linux
/dev/sda2       100147016775167 15773698 7.5G 5 擴展
/dev/sda5       100147216775167 15773696 7.5G 83 Linux

命令(m 尋求幫助):d
分區數量(1,2,5,預設5):2

分割區 2 已刪除。

命令(m 尋求幫助):n
隔間類型
   p 主要(1 個主要、0 個擴充、3 個免費)
   e 擴充(邏輯分割區的容器)
選擇(預設p):e
分區數(2-4,預設2):
第一區(999424-20479999,預設999424):1001470
最後一個扇區,+sectors 或 +size{K,M,G,T,P}(1001470-204799999,預設 20479999):

建立了類型為「擴充」且大小為 9.3 GiB 的新分割區 2。

命令(m 尋求幫助):n
主分割區的所有空間均已使用。
新增邏輯分割區5
第一區(1003518-20479999,預設1003520):
最後一個扇區,+sectors 或 +size{K,M,G,T,P}(1003520-204799999,預設 20479999):

建立了一個類型為「Linux」且大小為 9.3 GiB 的新分割區 5。

命令(m 尋求幫助):X


專家命令(m尋求幫助):
分區號(1,2,5,預設5):
新資料開始(1001471-20479999,預設1003520):1001472

專家命令(m 尋求協助):p

磁碟 /dev/sda:9.8 GiB,10485760000 字節,20480000 個磁區
單位:磁區 1 * 512 = 512 位元組
扇區大小(邏輯/物理):512 位元組/512 位元組
I/O 大小(最小/最佳):512 位元組/512 位元組
磁碟標籤類型:dos
磁碟標識符:0x0cd7105f

裝置引導開始結束磁區 ID 類型 Start-C/H/S End-C/H/S Attrs
/dev/sda1 * 2048 999423 997376 83 Linux 0/33/32 62/55/53 80
/dev/sda2       100147020479999 19478530 5 延長 62/23/86 250/23/209
/dev/sda5       100147220479999 19478528 83 Linux 62/57/118 250/23/209

然後r(返回主選單)和w(將表寫入磁碟)。

答案2

在普通介面中,Linux 的 fdisk 對分割區套用對齊約束。哪些限制取決於 fdisk 的版本。舊版預設採用柱面對齊,以便與不相容的舊作業系統相容LBA。當 LBA 出現二十多年前時,fdisk 預設不再迎合這種古老的系統,而是切換到 1MB 對齊,這在現代儲存媒體上提供了更好的效能。

在目前版本的 fdisk 中,要建立任意磁區(512B)對齊的分割區,您需要先建立具有所需終點的分割區,然後進入專家選單(x)並使用指令b調整分割區的開頭(這會變更分割區大小,而不是其結束位置)。它看起來確實相當笨拙。

答案3

Fdisk 是舊程序,它只識別 MBR 分割區。我認為你的問題在於改變了磁碟幾何結構(磁頭、每個磁軌的磁區和磁軌)。透過 dd 指令(磁區到磁區複製)將資料從舊磁碟複製到新磁碟後,分割區未與磁軌的起始磁區對齊。這就是為什麼 fdisk 不允許您在首次與舊磁碟上的磁軌磁區起始對齊之前建立起始分割區磁區。

您可以嘗試透過擴充功能表中的命令來變更 fdisk 程式中新磁碟的幾何形狀,但這是錯誤的方法。使用parted 和gparted 程式代替舊的fdisk。

現在讀取和寫入速度不依賴每個分割區的起始磁軌磁區的對齊。

相關內容