linux中sfdisk及parted的用法
SFDISK:
sfdisk [-?Tvx][-d <硬盤>][-g <硬盤>][-l <硬盤>][-s <分區>][-V <硬盤>]
sfdisk為硬盤分區工具程序,可顯示分區的設置信息,並檢查分區是否正常。
參數: www.2cto.com
-?或--help 顯示幫助。
-d<硬盤> 顯示硬盤分區的設置。
-g<硬盤>或--show-geometry<硬盤> 顯示硬盤的CHS參數。
-l<硬盤> 顯示後硬盤分區的相關設置。
-s<分區> 顯示分區的大小,單位為區塊。
-T或--list-types 顯示所有sfdisk能辨識的文件系統ID。
-v或--version 顯示版本信息。
-V<硬盤>或--verify<硬盤> 檢查硬盤分區是否正常。
-x或--show-extend 顯示擴展分區中的邏輯分區。
PARTED:
我們在工作中會發現,我們使用平時的分區工具fdisk不能創建大於2T的分區,
是linux不支持嗎?不對,現在的Linux內核中支持Large Block Device,完全可以使用大於2T的塊設備
使用parted 建立大小超過2T的分區
假設/dev/sdb大小為7T的存儲設備
parted /dev/sdb
print 查看分區的情況,找到起始位置
命令行模式的選項
當你調用命令行模式時,Parted的語法是這樣的:
# parted [option] device [command [argument]]
有幾個選項可以供你使用。
選項:
‘-h’
‘--help’ 顯示幫助信息
‘-i’
‘--interactive’
進入交互模式
‘-v’
‘--version’
顯示軟件的版本號
Parted 交互模式下的命令
GNU Parted 提供以下命令:
check(檢查)
格式:check number
檢查編號中所指定的文件系統是否有什麼錯誤.。
例:
(parted) check 1
檢查分區1上的文件系統.
cp(復制)
格式:cp [from-device] from-number to-number
將分區 from-number上的文件系統完整地復制到分區to-number 中。分區to-number 上的數據會被全部刪除。你可以再指定一個來源硬盤的設備名稱 from-device來指定來源分區所在的硬盤。
該命令支持以下文件系統:
* ext2, ext3 (所提供的目標分區必須比源分區要大)
* fat16, fat32
* linux-swap (相當於再目標分區執行mkswap 命令)
* reiserfs (如果安裝了libreiserfs庫)
例:
(parted) cp /dev/hdb 2 3
將/dev/hdb上的第二個分區的內容復制到第三個分區上。
help(幫助)
格式:help [command]
輸出一個命令的幫助信息
例:
(parted) help resize
輸出rezize 命令的幫助信息。
mklabel(建立分區表)
格式:mklabel label-type
建 立一個 label-type 類型的磁盤分區表。新的分區表不會有任何分區。這個命令通常不會破壞你的數據,但是它有可能讓你的數據變得不可讀。這是你就需要用到rescue 命令來恢復分區。關於rescue 命令的用法請參見後文。Parted 能在各種分區表上工作。
label-type 必須是一下這些類型:
* bsd
* loop (raw disk access)
* gpt
* mac
* msdos
* pc98
* sun
例:
(parted) mklabel msdos
建立一個MS-DOS格式的分區表。這對於PC而言是一個非常常見的操作。
mkfs(建立文件系統)
格式:mkfs number fs-type
在指定的分區上建立指定的文件系統。這個命令會破壞該分區上的所有數據。
該命令支持以下文件系統:
* ext2
* fat16, fat32
* linux-swap
* reiserfs (如果安裝了libreiserfs庫)
例:
(parted) mkfs 2 fat32
在第二個分區上建立FAT32格式的文件系統。
mkpart(建立新分區)
格式:mkpart part-type [fs-type] start end
建 立一個新的分區。若要建立非擴展分區,就最好用fs-type來指定文件系統。start和end是新分區開始和結束的具體位置。part-type是以 下類型之一: primary(主分區), extended(擴展分區), logical(邏輯分區). 擴展分區和邏輯分區只對msdos 和dvh分區表有效。
fs-type必須是以下文件系統:
* ext2
* fat16, fat32
* hfs, hfs+, hfsx
* linux-swap
* NTFS
* reiserfs
* ufs
例:
(parted) mkpart logical 0.0 692.1
建立一個包含ext2文件系統的邏輯分區,其位置是從磁盤的開始位置(0.0)到692.1M之間 。
mkpartfs(建立分區及其文件系統)
格式:mkpartfs part-type fs-type start end
建 立一個新的分區,並在上面建立文件系統。與mkpart相似,分區的位置處於begin和end之間,默認的單位是MB.。請勿使用這個命令來恢復一個被 刪除了的分區(應使用mkpart)。part-type是以下類型之一: primary(主分區), extended(擴展分區), logical(邏輯分區). 擴展分區和邏輯分區只對msdos 和dvh分區表有效。 fs-type必須是以下文件系統:
* ext2
* fat16, fat32
* linux-swap
* reiserfs (如果安裝了libreiserfs庫)
例:
(parted) mkpartfs logical ext2 440 670
建立一個a包含ex2格式文件系統的邏輯分區。其開始位置是440 MB,結束位置是670MB。
move(移動)
格式:move number start end
該 命令能將選定的分區在硬盤中移動。start 可以指定一個新的分區的起始位置。不過,你不能將一個分區移到另一個分區上。也就是說,你只能在空閒的地方中移動分區。如果你想改變分區的大小,那麼你所 需要的命令是resize 。另外,雖然分區被移動了,但它的分區編號是不會改變的。
該命令支持以下文件系統:
* ext2, ext3 (所提供的目標分區必須比源分區要大)
* fat16, fat32
* linux-swap
* reiserfs (如果安裝了libreiserfs庫)
例:
(parted) move 2 150M 500M
將編號為2的分區移動到硬盤中150M至500M的位置。
name (命名)
格式:name number name
為編號所指定的分區命名(只支持GPT, Mac, MIPS 和PC98 格式的分區)。名字可以用引號括起來。
print (輸出信息)
格式:print [number]
輸出parted正在操作的硬盤的分區表的信息,或者是某一個具體分區的信息。
quit (退出)
格式:quit
退出Parted.
只有當Parted退出後,Linux內核才會知道磁盤的設置已經被改變了。但是實際上只要你一執行一條命令,更改馬上就會寫入磁盤。不過,磁盤緩存有可能延緩寫入的操作。
rescue (恢復)
格式:rescue start end
如果你不小心用Parted的rm命令刪除了一個分區,那麼這個命令可以幫你恢復。你需要給出所誤刪的分區的大概的開始和結束的位置。Parted 就會在你給出的磁盤區域內去尋找,如果找到這個分區,那麼Parted 就會詢問你是否重新建立這個分區。
resize (調整大小)
格式:resize number start end
將編號所指定的分區調整大小。分區的開始位置和結束位置由start和end決定。resize不會改變分區的編號。注意,如果更改擴展分區的大小,那麼你必須保證新的分區大小能夠容納裡面的邏輯分區。另外,在調整大小前你無須對分區進行碎片整理。
該命令支持以下文件系統:
* ext2, ext3 – 限制:新的分區開始位置必須和原來的開始位置相同。也就是說,你只能向後擴展分區的大小。
* fat16, fat32
* hfs, hfs+, hfsx – 限制:新的分區開始位置必須和原來的開始位置相同。而且新的end必須小於原來的end。也就是說,你只能夠縮小分區。
* linux-swap
* reiserfs (如果安裝了libreiserfs庫)
例: www.2cto.com
(parted) resize 3 200M 850M
改變編號為3的分區的大小。其新的位置是200MB至 850MB 之間。
rm (刪除分區)
格式:rm number
將 編號所指定的分區刪除。如果你誤刪了某個分區,那麼你還可以用mkpart來挽救它(而不是用mkpartds)。注意,如果你使用的是MSDOS格式的 分區表,那麼假如你刪除了一個邏輯分區,那麼該分區後面的邏輯分區的編號都會相應地向前改變。例如,你刪除了編號為6的邏輯分區,那麼後面的7、8號邏輯 分區的編號將會改變,分別變成6、7號邏輯分區。若在Linux下。這意味著你可能要改變/etc/fstab文件。
例:
(parted) rm 3
將編號為3的分區刪除。
select (選擇設備)
格式:select device
選擇Parted將要編輯的磁盤設備。這個磁盤設備可以是一個Linux硬盤設備,一個軟盤、一個軟RAID磁盤陣或者是LVM邏輯卷。
例:
(parted) select /dev/hdb
選擇/dev/hdb作為Parted所要編輯的設備。
set (設置標記)
格式:set number flag state
更改編號所指定的分區的標記。哪些標記可用是由你的分區表決定的。標記有兩種狀態,要麼是on(生效),要麼是off(失效)。
‘boot’ (用於Mac, MS-DOS, PC98分區表) - 如果你想從某個分區引導,那麼你應該將這個分區的boot標記設置為on。對於MS-DOS分區表,一個硬盤上只能有一個分區是可引導的。如果你將 LILO裝到某個分區上,那麼這個分區一定是可引導的(也就是說你應該將安裝了LILO的分區的boot標記設為on)。對於PC98分區表,所有 ext3分區都必須是設置為可引導的。(Parted會對此強行操作)
‘lba’ (用於MS-DOS分區表)-這個標記可以告訴MS DOS、MS Windows 9x和 MS Windows ME等系統使用LBA(Logic Block Addressing)模式。
‘root’ (用於Mac分區表) - 如果某分區是Linux系統的根分區,那麼就要對該分區啟用這個標記。
‘swap’ (用於Mac分區表) - 如果某分區是Linux系統的交換分區,那麼就要對該分區啟用這個標記。
‘hidden’ (用於MS-DOS, PC98分區表) - 啟用這個標記能使一個分區‘隱藏’起來。(僅對微軟的操作系統有效) www.2cto.com
‘raid’ (用於MS-DOS分區表)-啟用這個標記能夠告訴Linux系統這是一個軟RAID磁盤陣。
‘LVM’(用於MS-DOS分區表)-啟用這個標記能夠告訴Linux系統這是一個LVM邏輯。
使用print命令能夠將所有能用的標記顯示出來。
例:
(parted) set 1 boot on
將編號為1的分區的boot標記設定為on(生效)
unit (設置單位)
格式:unit unit
為Parted選擇一個表示磁盤大小的單位。之後,凡是關於磁盤的位置(如分區的開始位置等等)的數字都是使用這個單位,你就可以不用給出單位後綴。(如:如果你選擇了MB作為單位,那麼512就代表512MB,你就不用額外打多個MB之類的東西)你可以使用下列單位: www.2cto.com
‘s’ :扇區 (通常一個扇區的大小是512個字節)
‘B’ byte
‘kB’ kilobyte (1000 bytes)
‘MB’ megabyte (1000000 bytes)
‘GB’ gigabyte (1000000000 bytes)
‘TB’ terabyte (1000000000000 bytes)
‘%’ 表示占整個磁盤設備的百分之多少(顯而易見,這個數字必須在0和100之間)
‘cyl’ 柱面(這個具體的位置和BIOS的CHS地址有關)
‘chs’ 柱面(cylinders),磁頭(heads),扇區(sectors)的地址(這個具體的位置和BIOS的CHS地址有關)
‘compact’ 這是一個比較奇怪的單位。輸入時是使用MB作為單位,輸出時的單位有可能不同,但是它確保輸出時的單位能使用戶一眼就看得出來磁盤的大小的,而不用心裡默 默地進行復雜的換算。(例如。它會使用1GB而不是使用1024MB,使用2MB而不是2048KB)
一般來說,Parted只會 使用默認的單位進行輸出,除非輸入的時候你沒有給出數字的後綴。你可以在輸入的數字後面加上一個單位來代替默認的單位(單位和數字之間是沒有空格的)。