引言
這篇文章主要介紹Linux硬盤的管理弧圆。文中涉及幾個常用的硬盤管理命令fdisk(硬盤分區(qū)等)、mkfs(分區(qū)的格式化)、mount(分區(qū)的掛載)晶渠。
文章目錄
- 0×1.Linux硬盤和分區(qū)命名規(guī)則
- 0×2.使用fdisk對硬盤進行管理
a.使用fdisk查看硬盤以及分區(qū)信息
b.使用fdisk創(chuàng)建主分區(qū)
c.使用fdisk改變分區(qū)文件系統(tǒng)類型
d.使用fdisk創(chuàng)建擴展分區(qū)
e.使用fdisk刪除分區(qū)
- 0×3.使用mkfs格式化分區(qū)
- 0×4.使用mount掛載分區(qū)
a.編輯/etc/fstab文件實現(xiàn)自動掛載
- 0×5.創(chuàng)建SWAP分區(qū)
0×1.Linux硬盤和分區(qū)命名規(guī)則
在Linux中,硬盤是以設(shè)備文件的形式存在的燃观,設(shè)備文件一般是在"/dev/"目錄中褒脯,而對不同接口的硬盤,目錄中對應(yīng)的名稱前綴稍有不同缆毁,下面是兩種接口的硬盤前綴番川,其中IDE硬盤已經(jīng)慢慢淡出歷史舞臺:
IDE接口硬盤盤符前綴為hd:
/dev/hd[a-p]
比如計算機有兩塊IDE接口的硬盤,那第一塊IDE硬盤設(shè)備文件名就是:
/dev/hda
第二塊就是:
/dev/hdb
以此類推脊框;
SAS/SCSI/SATA/USB接口硬盤盤符前綴sd:
/dev/sd[a-p]
比如計算機有兩塊SATA接口的硬盤颁督,那第一塊SATA硬盤設(shè)備文件名稱就是:
/dev/sda
第二塊就是:
/dev/sdb
以此類推;
例如浇雹,當前我所使用的筆記本的硬盤就屬于SATA接口:
#可以從下面的信息分析出沉御,我的筆記本有兩塊硬盤,主盤sda昭灵,從盤sdb吠裆,其中sda又劃分了兩個主分區(qū)分別是sda1和sda2,而從盤sdb劃分了三個主分區(qū)sdb[1-3]烂完,以及邏輯分區(qū)sdb[4-5]试疙,邏輯分區(qū)占用一個主分區(qū)號,所以sdb3這個主分區(qū)號實際上下面是兩個邏輯分區(qū)4-5
qing@qingsword.com:~$ ls /dev/sd*
/dev/sda /dev/sda2 /dev/sdb1 /dev/sdb3 /dev/sdb5
/dev/sda1 /dev/sdb /dev/sdb2 /dev/sdb4
0×2.使用fdisk對硬盤進行管理
實驗環(huán)境為CentOS7抠蚣,兩塊硬盤分別是/dev/sda(主硬盤)和/dev/sdb(從盤祝旷,大小20G),使用/dev/sdb來演示這些命令的使用嘶窄。
a.使用fdisk查看硬盤以及分區(qū)信息
fdisk是Linux下面的一個硬盤管理命令怀跛。可以查看當前環(huán)境有幾塊硬盤护侮,每塊硬盤的大小敌完,每塊硬盤上都劃分了那些區(qū)域,還可以對硬盤進行分區(qū)羊初、刪除滨溉、改變分區(qū)文件系統(tǒng)類型等操作:
#對硬盤的操作需要root權(quán)限什湘,使用sudo執(zhí)行命令,查看當前環(huán)境下硬盤的全局信息
[root@localhost ~]# sudo fdisk -l
#這是主硬盤/dev/sda的綜合信息晦攒,部分字段解釋如下:
#硬盤類型sd,說明硬盤接口是"SAS/SCSI/SATA/USB"中的一種闽撤,總大小42.9 GB;
#255 heads : 255個磁頭脯颜;
#63 sectors/track : 63個扇區(qū)哟旗;
#5221 cylinders : 5221個磁柱;
#Units = 每個磁柱容量栋操;
Disk /dev/sda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 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: 0x000e6c2b
#這是主硬盤/dev/sda上的分區(qū)情況闸餐,部分字段解釋如下:
#Device下面顯示的是設(shè)備分區(qū)號,Boot下面帶*號的是引導(dǎo)分區(qū)矾芙;
#Start和End是起始和結(jié)束的磁柱舍沙,通過起始和結(jié)束磁柱可以計算Blocks大小,計算方法(End-Start)*(Units/1024)小數(shù)點四舍五入剔宪;
#Id是系統(tǒng)對文件系統(tǒng)的編號(83=Linux文件系統(tǒng)ext拂铡,7=NTFS文件系統(tǒng));
#System是文件系統(tǒng)的名稱和ID對應(yīng)葱绒,文件系統(tǒng)編號稍后會介紹到感帅;
Device Boot Start End Blocks Id System
/dev/sda1 * 1 64 512000 83 Linux
/dev/sda2 64 5222 41430016 8e Linux LVM
#還沒有分區(qū)的從盤/dev/sdb
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 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: 0x00000000
b.使用fdisk創(chuàng)建主分區(qū)
想要對某個盤進行操作,只需使用root權(quán)限輸入fdisk后面接硬盤路徑即可地淀,新建主分區(qū)實例:
#進入/dev/sdb這塊硬盤的命令模式
[root@localhost ~]# sudo fdisk /dev/sdb
Command (m for help): m #輸入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)
#上面是fdisk支持的全部命令,下面是幾個常用命令的解釋:
# d 刪除一個分區(qū)骚秦;
# l 顯示一個分區(qū)文件類型列表她倘,在這個列表會看所有的分區(qū)文件類型所對應(yīng)的數(shù)字;
# t 改變分區(qū)類型(配合l使用)作箍;
# m 列出幫助信息硬梁;
# n 新建一個分區(qū);
# p 列出分區(qū)表(fdisk -l是顯示所有硬盤的分區(qū)表胞得,這里的p是顯示當前硬盤的分區(qū)表)荧止;
# w 保存當前操作然后退出;
# q 不保存退出阶剑;
#在這塊硬盤上劃分一個主分區(qū)
Command (m for help): n #輸入n回車
Command action #詢問是創(chuàng)建一個擴展分區(qū)(e)跃巡,還是主分區(qū)(p)
e extended
p primary partition (1-4)
p #輸入p,創(chuàng)建一個主分區(qū)
Partition number (1-4): 1 #輸入主分區(qū)編號牧愁,因為這是塊新硬盤素邪,所以輸入1
First cylinder (1-2610, default 1): #輸入起始磁柱,一般默認回車就可以
#輸入這個新的分區(qū)的大小,單位可以是K猪半,M兔朦,G偷线,本例輸入+1000M,加號不能省略
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +1000M
Command (m for help): p #查看一下當前分區(qū)表
#剛才創(chuàng)建的分區(qū)已經(jīng)顯示出來了
Device Boot Start End Blocks Id System
/dev/sdb1 1 128 1028128+ 83 Linux
Command (m for help): w
#保存分區(qū)操作退出,如果覺得前面的操作不滿意沽甥,不想保存退出声邦,可以輸入q不保存退出
c.使用fdisk改變分區(qū)文件系統(tǒng)類型
改變分區(qū)文件系統(tǒng)類型:
#再次進入這塊硬盤的命令模式
[root@localhost ~]# sudo fdisk /dev/sdb
Command (m for help): l #輸入l查看當前可用的文件系統(tǒng)類型
...
6 FAT16
7 HPFS/NTFS
#fdisk是支持NTFS文件系統(tǒng)的,下面就將剛才的主分區(qū)改成這個文件系統(tǒng)
Command (m for help): t #輸入t
#輸入要改變的分區(qū)號摆舟,因為沒有其他分區(qū)了亥曹,默認自動輸入了1
Selected partition 1
Hex code (type L to list codes): 7 #改變成7,即NTFS文件系統(tǒng)
Changed system type of partition 1 to 7 (HPFS/NTFS)
Command (m for help): p #查看一下恨诱,ID變成了7
Device Boot Start End Blocks Id System
/dev/sdb1 1 128 1028128+ 7 HPFS/NTFS
Command (m for help): w #保存退出
d.使用fdisk創(chuàng)建擴展分區(qū)
下面這個實例演示如何新建一個擴展分區(qū)媳瞪,并且在擴展分區(qū)上面再劃分出邏輯分區(qū):
[root@localhost ~]# sudo fdisk /dev/sdb
Command (m for help): n
Command action
e extended
p primary partition (1-4)
e #輸入e,創(chuàng)建擴展分區(qū)
Partition number (1-4): 1 #輸入擴展分區(qū)號胡野,故意輸入1材失,提示1已經(jīng)使用
Partition 1 is already defined. Delete it before re-adding it.
Command (m for help): n
Command action
e extended
p primary partition (1-4)
e
Partition number (1-4): 2 #輸入分區(qū)號2
First cylinder (129-2610, default 129): #默認起始磁柱痕鳍,回車
Using default value 129
#輸入這個擴展分區(qū)的大小硫豆,本例劃分2G
Last cylinder, +cylinders or +size{K,M,G} (129-2610, default 2610): +2G
Command (m for help): p #查看當前分區(qū)表
Device Boot Start End Blocks Id System
/dev/sdb1 1 128 1028128+ 7 HPFS/NTFS
/dev/sdb2 129 390 2104515 5 Extended
Command (m for help): n #在此基礎(chǔ)上再新建分區(qū)
Command action
l logical (5 or over) #只要已經(jīng)存在擴展分區(qū),就會出現(xiàn)邏輯分區(qū)選項
p primary partition (1-4)
l #輸入l笼呆,在這個擴展分區(qū)上創(chuàng)建一個邏輯分區(qū)
First cylinder (129-390, default 129): #回車
Using default value 129
#劃分1G給這個邏輯分區(qū)
Last cylinder, +cylinders or +size{K,M,G} (129-390, default 390): +1G
Command (m for help): p #查看一下
Device Boot Start End Blocks Id System
/dev/sdb1 1 128 1028128+ 7 HPFS/NTFS
/dev/sdb2 129 390 2104515 5 Extended
/dev/sdb5 129 260 1060258+ 83 Linux
#在第一部分已經(jīng)詳細講解過熊响,一個擴展分區(qū)也占用一個主分區(qū)號,邏輯分區(qū)的分區(qū)號是從5開始的(因為主分區(qū)號的范圍是1~4诗赌,就算沒有那么多主分區(qū)汗茄,分區(qū)號也會保留著)
Command (m for help): w #保存退出
e.使用fdisk刪除分區(qū)
[root@localhost ~]# sudo fdisk /dev/sdb
Command (m for help): d #輸入d回車
Partition number (1-5): 5 #輸入要刪除的分區(qū)號
Command (m for help): p #邏輯分區(qū)已經(jīng)被刪除了
Device Boot Start End Blocks Id System
/dev/sdb1 1 128 1028128+ 7 HPFS/NTFS
/dev/sdb2 129 390 2104515 5 Extended
Command (m for help): q
#這里我不保存剛才的刪除分區(qū)操作,因為等下要用來演示格式化操作
分區(qū)完成后就可以對分區(qū)進行格式化操作了铭若,只有被格式化之后洪碳,這個分區(qū)才能被掛載使用,格式化前必須重啟系統(tǒng)叼屠,新建的分區(qū)才能被識別(不同的系統(tǒng)可能不一樣瞳腌,一部分Linux發(fā)行版分區(qū)完成后直接就能格式化無需重啟)。
0×3.使用mkfs格式化分區(qū)
#在CentOS中mkfs所支持的文件系統(tǒng)類型
[root@localhost ~]# sudo mkfs.#在這個.后面連續(xù)按兩下tab鍵镜雨,下面就是支持的格式化類型
mkfs.btrfs mkfs.ext2 mkfs.ext4 mkfs.minix mkfs.vfat
mkfs.cramfs mkfs.ext3 mkfs.fat mkfs.msdos mkfs.xfs
#將/dev/sdb5格式化成ext4文件系統(tǒng)
[root@localhost ~]# sudo mkfs.ext4 /dev/sdb5
0×4.使用mount掛載分區(qū)
使用下面的命令嫂侍,將/dev/sdb5掛載到/home/qing/sdb5:
#在自己的家目錄創(chuàng)建一個文件夾sdb5
qing@qingsword.com:~$ mkdir ~/sdb5
#將/dev/sdb5分區(qū)掛載到剛才創(chuàng)建的文件夾中
qing@qingsword.com:~$ sudo mount /dev/sdb5 ~/sdb5
#因為掛載操作是root權(quán)限的,所以掛載后sdb5目錄會變成只有root才能讀寫荚坞,當前用戶需要讀寫請使用下面的命令將這個目錄的用戶和組都改為當前用戶挑宠,將qing替換成你自己的用戶名
qing@qingsword.com:~$ sudo chown -R qing:qing ~/sdb5
#如果不需要使用了,可以使用下面的命令取消掛載
qing@qingsword.com:~$ sudo umount ~/sdb5
掛載完成后颓影,對目錄~/sdb5的讀寫操作實際上就是直接讀寫的/dev/sdb5這個邏輯分區(qū)各淀,但系統(tǒng)重啟后,掛載會失效诡挂,可以使用下面的方法來讓系統(tǒng)自動掛載碎浇。
a.編輯/etc/fstab文件實現(xiàn)自動掛載
#使用gedit編輯器打開這個文件
qing@qingsword.com:~$ sudo gedit /etc/fstab
#在已有內(nèi)容的后面新起一行疗我,寫入下面了內(nèi)容;
#第一個參數(shù)為你要掛載的分區(qū)(/dev/sdb5)南捂;
#第二個參數(shù)為掛載的位置(/sdb5文件夾必須存在)吴裤;
#第三個參數(shù)是分區(qū)文件類型(ext4),格式化的時候的那個類型溺健,后面的參數(shù)默認即可麦牺;
/dev/sdb5 /home/qing/sdb5 ext4 defaults 0 0
#保存退出,這樣每次系統(tǒng)重啟都會自動將/dev/sdb5分區(qū)掛載到/home/qing/sdb5目錄中了
0×5.創(chuàng)建SWAP分區(qū)
現(xiàn)在假設(shè)我們系統(tǒng)沒有分配SWAP交換分區(qū)鞭缭,而后我們想添加一個SWAP分區(qū)(或者擴充現(xiàn)有的SWAP分區(qū)大衅噬拧),可以先使用fdisk從空余磁盤中取出一部分空間岭辣,然后激活成SWAP分區(qū)吱晒,請看下面的實例:
#分區(qū)的步驟這里就不給出了,只是要注意在分區(qū)時使用
t參數(shù)將分區(qū)類型替換成82交換分區(qū)沦童,假設(shè)我分了一個/dev/sdb1分區(qū)大小是5G仑濒,下面將這個分區(qū)的類型改成Linux swap
....省略分區(qū)步驟....
Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 82
Changed type of partition 'Linux' to 'Linux swap / Solaris'
Command (m for help): w
The partition table has been altered!
#使用mkswap將分區(qū)格式化成SWAP分區(qū)
[root@qingsword.com:~]# mkswap /dev/sdb1
#現(xiàn)在系統(tǒng)中的swap分區(qū)大小是0
[root@qingsword.com:~]# free -h
total used free shared buffers cached
Mem: 1.8G 1.0G 770M 9.7M 1.2M 360M
-/+ buffers/cache: 695M 1.1G
Swap: 0B 0B 0B
#使用swapon讓上面格式化后的swap分區(qū)起作用
[root@qingsword.com:~]# swapon /dev/sdb1
#再次查看,swap分區(qū)的大小變成了5G
[root@qingsword.com:~]# free -h
total used free shared buffers cached
Mem: 1.8G 1.0G 765M 9.7M 1.2M 360M
-/+ buffers/cache: 699M 1.1G
Swap: 5.0G 0B 5.0G
#最后偷遗,如果想要讓swap分區(qū)開機掛載使用墩瞳,需要將下面這一句信息寫入/etc/fstab文件中
/dev/sdb1 swap swap defaults 0 0