1.命令簡(jiǎn)介
fdisk 命令用于創(chuàng)建和維護(hù)磁盤(pán)分區(qū)表。它采用傳統(tǒng)的問(wèn)答式界面,而不是類(lèi)似于 fdisk 的 cfdisk 的互動(dòng)式操作界面,因此在使用上較為不便,但功能卻絲毫不打折扣。它兼容 DOS 類(lèi)型的分區(qū)表、BSD 或者 SUN 類(lèi)型的磁盤(pán)列表。
2.命令格式
fdisk [-uc] [-b sectorsize] [-C cyls] [-H heads] [-S sects] device
fdisk -l [-u] [device.。.]
fdisk -s partition.。.
fdisk -v
fdisk -h
3.選項(xiàng)說(shuō)明
-b [sectorsize]:指定硬盤(pán)扇區(qū)大小,可用數(shù)值為512, 1024, 2048 or 4096;
-c:關(guān)閉DOS兼容模式;
-C [cyls]:指定硬盤(pán)的柱面數(shù)(number of cylinders);
-H [heads]:指定硬盤(pán)的磁頭數(shù)(number of heads),當(dāng)然不是物理數(shù)值,而是作用于分區(qū)表。合理取值是255和16;
-S [sects]:指定每個(gè)磁道的扇區(qū)數(shù),當(dāng)然不是物理數(shù)值,而是用于分區(qū)表。一個(gè)合理的數(shù)值是63;
-l:列出指定設(shè)備的分區(qū)表,然后退出。如果沒(méi)有給定設(shè)備,則使用在/proc/partitions(如果存在)中提到的那些設(shè)備;
-u:在列出分區(qū)表時(shí),給出扇區(qū)大小而不是柱面大小;
-s [partition]:以塊(block)為單位,顯示指定分區(qū)的大小;
-v:顯示版本信息;
-h:顯示幫助信息。
閱讀以上選項(xiàng)說(shuō)明,需要注意以下幾個(gè)問(wèn)題:
(1)塊(block)與扇區(qū)(sector)的區(qū)別。
扇區(qū)是對(duì)硬盤(pán)而言,扇區(qū)是硬盤(pán)的最小存儲(chǔ)單位,塊是對(duì)文件系統(tǒng)而言,塊是文件系統(tǒng)最小存取單位。一般而言,一個(gè)扇區(qū)大小為512B,一個(gè)塊大小為4KB,一個(gè)block是由連續(xù)的8個(gè)sector組成。
(2)理解上面選項(xiàng)的含義,需了解磁盤(pán)的物理組成結(jié)構(gòu)與相關(guān)概念,例如sector、cylinder、head等組成部件的具體含義,可參見(jiàn)硬盤(pán)的存儲(chǔ)原理和內(nèi)部架構(gòu) 。
4.常用示例
(1)列出指定設(shè)備的分區(qū)情況。
[root@add_friend_protect /home/oicq]# fdisk -l /dev/sda
Disk /dev/sda: 300.0 GB, 299966445568 bytes
255 heads, 63 sectors/track, 36468 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0009808c
Device Boot Start End Blocks Id System
/dev/sda1 * 1 1306 10485760 83 Linux
/dev/sda2 1306 1566 2088960 82 Linux swap / Solaris
/dev/sda3 1566 4177 20971520 83 Linux
/dev/sda4 4177 36469 259387694 83 Linux
對(duì)fdisk -l相關(guān)數(shù)值的解釋如下:
第一行中說(shuō)明硬盤(pán)/dev/sda總大小為300.0 GB;
第二行中heads表示硬盤(pán)磁頭數(shù),也是盤(pán)面數(shù),因?yàn)榇蓬^數(shù)等于盤(pán)面數(shù)。隨后63 sectors/track說(shuō)明每條磁道分63個(gè)扇區(qū)。共36468個(gè)柱面,柱面是分區(qū)的最小單位;
第三行說(shuō)明每個(gè)柱面單位是8225280 byets,柱面單位大小=磁頭數(shù)*每條磁道的扇區(qū)數(shù)*扇區(qū)大小=255*63*512B=8225280B;
第四行說(shuō)明扇區(qū)的大小是512B;
第五行說(shuō)明硬盤(pán)最小與最佳的存儲(chǔ)單位是512 bytes,等于扇區(qū)大小,因?yàn)樯葏^(qū)是硬盤(pán)的最小存儲(chǔ)單位;
第六行說(shuō)明硬盤(pán)標(biāo)識(shí)符是0x0009808c。
第七行表示每個(gè)分區(qū)相關(guān)參數(shù)的含義。
Device:分區(qū)名稱(chēng);
Boot:是否是活動(dòng)分區(qū)?;顒?dòng)分區(qū)只能是主分區(qū),一個(gè)硬盤(pán)只能有一個(gè)活動(dòng)的主分區(qū);一個(gè)硬盤(pán)的主分區(qū)與擴(kuò)展分區(qū)總和不能超過(guò)4個(gè)。硬盤(pán)分區(qū)遵循著“主分區(qū)→擴(kuò)展分區(qū)→邏輯分區(qū)”的次序原則,而刪除分區(qū)則與之相反。
主分區(qū):一個(gè)硬盤(pán)可以劃分多個(gè)主分區(qū),但沒(méi)必要?jiǎng)澐帜敲炊?,一個(gè)足矣。
擴(kuò)展分區(qū):主分區(qū)之外的硬盤(pán)空間就是擴(kuò)展分區(qū),
邏輯分區(qū):是對(duì)擴(kuò)展分區(qū)再行劃分得到的。
Start:分區(qū)柱面的開(kāi)始下標(biāo);
End:分區(qū)柱面的結(jié)束下標(biāo);
Blocks:該分區(qū)的塊數(shù)量。當(dāng)前文件系統(tǒng)block=2*sector,所以塊數(shù)量=(End-Start)*柱面的扇區(qū)數(shù)/2=1305*255*63/2=10482412.5;
Id:各種分區(qū)的文件系統(tǒng)不同,如有ntfs分區(qū),fat32分區(qū),ext3分區(qū),swap分區(qū)等。每一種文件系統(tǒng)都有一個(gè)代號(hào),對(duì)應(yīng)這里的Id。常見(jiàn)的文件系統(tǒng)ID有:
f:FAT32 Extend,只限于擴(kuò)展分區(qū)。
86:NTFS。
7:HPFS/NTFS
b:FAT32。
83:Linux Ext2。
82:Linux 交換區(qū)。
System:文件系統(tǒng)名稱(chēng)。
總結(jié):
一個(gè)磁盤(pán)的大小=一個(gè)柱面大小*柱面的總數(shù)=磁頭數(shù)量*每個(gè)磁道上的扇區(qū)數(shù)*一個(gè)扇區(qū)大小*柱面總數(shù)
即:
磁盤(pán)大小=8225280*36468=299959511040 bytes=299GB=255*63*512*36468
上例中顯示出的硬盤(pán)大小與實(shí)際計(jì)算出來(lái)的有少許出入,這個(gè)不必太在意,Linux顯示的這些數(shù)據(jù)不會(huì)十分精確。
(2)對(duì)指定設(shè)備進(jìn)行分區(qū)并掛載。
第一步,選擇要進(jìn)行操作的磁盤(pán),進(jìn)入問(wèn)答式界面。
fdisk /dev/sdb
第二步,輸入m列出可以執(zhí)行的命令。
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition‘s system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
第三步,輸入p列出磁盤(pán)目前的分區(qū)情況。
Disk /dev/sda: 300.0 GB, 299966445568 bytes
255 heads, 63 sectors/track, 36468 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0009808c
Device Boot Start End Blocks Id System
/dev/sda1 * 1 1306 10485760 83 Linux
/dev/sda2 1306 1566 2088960 82 Linux swap / Solaris
/dev/sda3 1566 4177 20971520 83 Linux
/dev/sda4 4177 36469 259387694 83 Linux
第四步,輸入d然后選擇分區(qū),刪除現(xiàn)有分區(qū)。
Command (m for help): d
Partition number (1-4): 1
Command (m for help): d
Selected partition 2
Command (m for help): d
Selected partition 3
Command (m for help): d
Selected partition 4
第五步,輸入n建立新的磁盤(pán)分區(qū),首先建立兩個(gè)主磁盤(pán)分區(qū)。
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p //建立主分區(qū)
Partition number (1-4): 1 //分區(qū)號(hào)
First cylinder (1-391, default 1): //分區(qū)起始位置
Using default value 1
last cylinder or +size or +sizeM or +sizeK (1-391, default 391): 100 //分區(qū)結(jié)束位置,單位為柱面
Command (m for help): n //再建立一個(gè)主分區(qū)
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2 //分區(qū)號(hào)為2
First cylinder (101-391, default 101):
Using default value 101
Last cylinder or +size or +sizeM or +sizeK (101-391, default 391): +200M //分區(qū)結(jié)束位置,單位為M
第七步,確認(rèn)分區(qū)建立成功。
Command (m for help): p
Disk /dev/sdb: 3221 MB, 3221225472 bytes
255 heads, 63 sectors/track, 391 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 100 803218+ 83 Linux
/dev/sdb2 101 125 200812+ 83 Linux
第八步,再建立一個(gè)邏輯分區(qū)。
Command (m for help): n
Command action
e extended
p primary partition (1-4)
e //選擇擴(kuò)展分區(qū)
Partition number (1-4): 3
First cylinder (126-391, default 126):
Using default value 126
Last cylinder or +size or +sizeM or +sizeK (126-391, default 391):
Using default value 391
第九步,確認(rèn)擴(kuò)展分區(qū)建立成功。
Command (m for help): p
Disk /dev/sdb: 3221 MB, 3221225472 bytes
255 heads, 63 sectors/track, 391 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 100 803218+ 83 Linux
/dev/sdb2 101 125 200812+ 83 Linux
/dev/sdb3 126 391 2136645 5 Extended
第十步,在擴(kuò)展分區(qū)上建立兩個(gè)邏輯分區(qū)。
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l //選擇邏輯分區(qū)
First cylinder (126-391, default 126):
Using default value 126
Last cylinder or +size or +sizeM or +sizeK (126-391, default 391): +400M
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (176-391, default 176):
Using default value 176
Last cylinder or +size or +sizeM or +sizeK (176-391, default 391):
Using default value 391
第十一步,確認(rèn)邏輯分區(qū)建立成功。
Command (m for help): p
Disk /dev/sdb: 3221 MB, 3221225472 bytes
255 heads, 63 sectors/track, 391 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 100 803218+ 83 Linux
/dev/sdb2 101 125 200812+ 83 Linux
/dev/sdb3 126 391 2136645 5 Extended
/dev/sdb5 126 175 401593+ 83 Linux
/dev/sdb6 176 391 1734988+ 83 Linux
Command (m for help):
從上面的結(jié)果我們可以看到,在硬盤(pán) sdb 我們建立了 2 個(gè)主分區(qū)(sdb1,sdb2),1個(gè)擴(kuò)展分區(qū)(sdb3),2 個(gè)邏輯分區(qū)(sdb5,sdb6)。
注意:主分區(qū)和擴(kuò)展分區(qū)的磁盤(pán)號(hào)位1-4,也就是說(shuō)最多有 4 個(gè)主分區(qū)或者擴(kuò)展分區(qū),邏輯分區(qū)開(kāi)始的磁盤(pán)號(hào)為 5,因此在這個(gè)實(shí)驗(yàn)中是沒(méi)有 sdb4 的。
最后對(duì)分區(qū)操作進(jìn)行保存:
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
建立好分區(qū)之后我們還需要對(duì)分區(qū)進(jìn)行格式化才能在系統(tǒng)中使用磁盤(pán)。
在 sdb1 上建立 ext2 文件系統(tǒng)。
[root@localhost ~]# mkfs.ext2 /dev/sdb1
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
100576 inodes, 200804 blocks
10040 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=209715200
7 block groups
32768 blocks per group, 32768 fragments per group
14368 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
在 sdb6 上建立 ext3 文件系統(tǒng)。
[root@localhost ~]# mkfs.ext3 /dev/sdb6
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
217280 inodes, 433747 blocks
21687 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=444596224
14 block groups
32768 blocks per group, 32768 fragments per group
15520 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@localhost ~]#
建立兩個(gè)目錄/oracle和/web,將新建好的兩個(gè)分區(qū)掛載到系統(tǒng):
[root@localhost ~]# mkdir /oracle
[root@localhost ~]# mkdir /web
[root@localhost ~]# mount /dev/sdb1 /oracle
[root@localhost ~]# mount /dev/sdb6 /web
查看分區(qū)掛載情況:
[root@localhost ~]# df -h
文件系統(tǒng) 容量 已用 可用 已用% 掛載點(diǎn)
/dev/mapper/VolGroup00-LogVol00
6.7G 2.8G 3.6G 44% /
/dev/sda1 99M 12M 82M 13% /boot
tmpfs 125M 0 125M 0% /dev/shm
/dev/sdb1 773M 808K 733M 1% /oracle
/dev/sdb6 1.7G 35M 1.6G 3% /web
如果需要每次開(kāi)機(jī)自動(dòng)掛載則需要修改/etc/fstab文件,加入兩行配置:
[root@localhost ~]# vim /etc/fstab
/dev/VolGroup00/LogVol00 / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/VolGroup00/LogVol01 swap swap defaults 0 0
/dev/sdb1 /oracle ext2 defaults 0 0
/dev/sdb6 /web ext3 defaults 0 0
參考文獻(xiàn)
[1] fdisk(8) manual
[2] Linux命令大全.fdisk命令
[3] 磁盤(pán)的塊大?。˙lock Size)和扇區(qū)大?。⊿ector Size)
[4] fdisk -l 命令詳解
給我們公號(hào)發(fā)送 命令 二字,獲取“每天一個(gè)Linux命令”系列的完整目錄。
- EOF -
推薦閱讀 點(diǎn)擊標(biāo)題可跳轉(zhuǎn)
1、每天一個(gè) Linux 命令(120):tee 命令
2、每天一個(gè) Linux 命令(119):echo 命令
3、每天一個(gè) Linux 命令(118):rename 命令
原文標(biāo)題:每天一個(gè) Linux 命令(124):fdisk 命令
文章出處:【微信公眾號(hào):Linux愛(ài)好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
責(zé)任編輯:haq
-
Linux
+關(guān)注
關(guān)注
87文章
11310瀏覽量
209626 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6834瀏覽量
123350 -
命令
+關(guān)注
關(guān)注
5文章
684瀏覽量
22037
原文標(biāo)題:每天一個(gè) Linux 命令(124):fdisk 命令
文章出處:【微信號(hào):LinuxHub,微信公眾號(hào):Linux愛(ài)好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論