2012-05-09 51 views
6

我一直在閱讀partedman page但似乎無法找到有效參數的任何文檔。我試圖用特定分區大小(不管CF大小)對USB CompactFlash進行分區。但我想確保我的路線完全正確和最佳。有效參數分開

例如,當我使用下面的命令:

parted -s -a optimal $DEV mkpart primary ext3 1 1600 
parted -s -a optimal $DEV mkpart primary ext3 1600 3200 
parted -s -a optimal $DEV mkpart primary ext3 3200 3600 

目前尚不清楚,如果第一個分區的起始應該是1或0?我得到它應該有一個1開始,而不是一個零的唯一線索是,當我運行:

parted /dev/sdc align-check optimal 1 

告訴我這是從1開始的時候並沒有對齊排列以0但當開始的時候我從1開始,我做一個'打印',開始在1049kB ......這是正常的嗎?當我轉儲由其他工具創建的打印分區時,我發現它們以32kB開始。如果我使用0的開始,它打印一個512kB的開始。這是正確的,我不知道!

此外,我已經看到很多使用他們的第二和第三分區的起始值作爲它們之前分區的結束值(即:1600和3200值)的人們的網絡示例。我們是否想要重疊或增加1?手冊頁對此沒有提及。而且我看過一些網頁,他們說它的起始錯誤與最後一個結果的值相同。

當我使用'-a最佳'時,它似乎甚至不會影響我的分區。不使用對齊標誌似乎產生相同的結果。這是爲了什麼目的?有什麼我失蹤?

我真的希望分手會更聰明,不需要開始,而是可以自己推斷出來。實際上很多人似乎都需要這個確切的功能,所以我不是唯一有這種需求的奇怪球。希望有一些怪胎會看到這個需求,並將其作爲一項功能加入其中。

請注意,我使用parted在自動生成腳本,這就是爲什麼我使用'-s'標誌。

如果任何人都可以在這方面給我啓發,我將不勝感激...先謝謝了!

+0

此問題適用於超級用戶StackExchange站點。 – BeowulfNode42

回答

17

我想你已經在這裏提出了一些有趣的問題,可惜之前沒人回答他們,所以我會盡力去做。


It's not clear if the first partition start should be 1 or 0?

第一分區開始必須是1,因爲一個磁盤的第一個字節包含主引導記錄和一些磁盤標籤,諸如MS-DOS的結構。因此,如果您使用值0作爲第一個分區的開始,則libparted會在磁盤的開始處留下幾個字節以允許此內容,並將分區的開始位置立即放在第一個分區之後。


the start is at 1049kB... is this normal?

這是正常的。爲了解釋這一點,首先你必須知道,對於libparted,千字節不等於1024字節,相反,等於1000字節。

KB =千字節= 1000Bytes
KIB = KibiByte = 1024Bytes

的更多信息:
http://en.wikipedia.org/wiki/Kilobyte
http://www.gnu.org/software/parted/manual/html_node/unit.html

分區偏移在KB(千字節),並將其值是近似的,如果將單位更改爲字節:

parted /dev/sdf unit b print 

你會看到真正的價值:1048576B這是,1MiB(1048576B〜= 1049KB),正是你想要的。


I see that they start at 32kB

是的,分區開始於32KB,因爲你正在使用的工具可能是太舊了,你使用的是與512字節扇區大小的磁盤。分區的實際起始偏移量可能是32256,對應於扇區63。幾年前,分區工具將第一個分區的開始放在第63個扇區,以便將其與舊的CHS幾何體對齊。這是太多時間去解釋,但我建議你閱讀本鏈接,瞭解更多的詳細信息:

https://superuser.com/questions/352572/why-does-the-partition-start-on-sector-2048-instead-of-63 http://lwn.net/Articles/377895/


If I use a start of 0, it prints a start of 512kB

我認爲它打印在512B開始,而不是KB , 我錯了嗎?
在512字節扇區的磁盤中,第一個扇區在511偏移處結束,就像我上面告訴過你的那樣,第一個分區在第一個扇區後面開始。


Are we suppose to have an overlap or increment by 1?

我你的單位更改爲字節,你會看到分區的實際位置,並可以檢查它們不重疊。


What purpose is this for? Is there something I'm missing?

這是因爲,在默認情況下,分手的作品與MIB。當你輸入:

parted -s -a optimal $DEV mkpart primary ext3 1 1600 

你要求分手創建一個對應於MiB#1和#1600的偏移量之間的分區。與MiB對齊的偏移量始終對齊以獲得最佳性能,因此不需要指定-a optimal。如果更改單位爲字節你可以創建一個非對齊分區:

parted $DEV unit b mkpart primary 1000000 160MB 
parted $DEV align-check optimal 1 

它顯示的錯誤:The resulting partition is not properly aligned for best performance.

所以,儘量做同樣的-a none選項:

parted -a none $DEV unit b mkpart primary 1000000 160MB 

現在沒有錯誤,這是此選項的目的。


I really wish parted would be a lot more intelligent and not require a start, but rather could deduce it itself.

我認爲功能將通過使用libparted任何工具來實現,但我認爲沒有必要在圖書館...但誰知道?也許一些libparted的開發者在聽...你有沒有試圖發送錯誤報告? [email protected]