目錄
- 磁盤結(jié)構(gòu)
- 磁盤分區(qū)
- 磁盤分區(qū)管理
- 文件系統(tǒng)管理
- 掛載
一、磁盤結(jié)構(gòu)
(一)設(shè)備文件
設(shè)備文件:
linux系統(tǒng)下一切皆文件,設(shè)備文件分為塊設(shè)備和字符設(shè)備塊設(shè)備:存取單位為“塊”,如磁盤
字符設(shè)備:存取單位為“字符”,如鍵盤
-
設(shè)備號碼:
- 主設(shè)備號:major number,標識設(shè)備類型
- 次設(shè)備號:minor number,標識同類型不同設(shè)備
- 下圖紅色方框內(nèi),逗號前為主設(shè)備號表示設(shè)備類型,逗號后為次設(shè)備號
- 創(chuàng)建設(shè)備文件 mknod
mknod filepath {b | c} m n // b指塊設(shè)備,c指字符設(shè)備,m指主設(shè)備號,n指次設(shè)備號
(二)磁盤設(shè)備文件命名:/dev/DEV_FILE
物理磁盤
/dev/sd
,虛擬磁盤/dev/vd
不同磁盤標識:a-z排序,如
/dev/sda
,/dev/sdb
同磁盤的不同分區(qū)標識:數(shù)字排序,從1開始,但是并不一定連續(xù)編號,視分區(qū)方式而定,如
/dev/sda1
,/dev/sda5
(三)磁盤物理概念
head:磁頭,一張磁盤的兩個面需要各配置一個磁頭,磁頭數(shù)等于盤面數(shù)
track:磁道,磁盤盤面分成許多同心圓,每個同心圓是一個磁道
sector: 扇區(qū),磁道被分成長度相等的多個區(qū)段為扇區(qū),每個扇區(qū)大小512bytes
cylinder: 柱面,硬盤上所有盤面上相同位置的磁道組合成的假想的圓柱面
(四)磁盤尋址
磁盤尋址方式:較老的CHS和較新的LBA方式
-
CHS尋址
- 采用24bit位尋址
- 其中前10位表示cylinder,中間8位表示head,后面6位表示sector。
- 最大尋址空間:(2^10) * (2^8) * (2^6) * 512B / (2^30) = 8GB
-
LBA尋址
- 采用48bit尋址
- 最大尋址空間128PB
磁盤小于8GB時兩種尋址方式均可;當磁盤大于8GB時,必須使用LBA尋址方式。當前硬盤容量遠大于8GB,CHS尋址已經(jīng)基本淘汰。
二、磁盤分區(qū)
(一)磁盤分區(qū)的優(yōu)勢
優(yōu)化I/O性能
實現(xiàn)磁盤空間配額限制
提高修復速度
隔離系統(tǒng)和程序
安裝多個OS
采用不同文件系統(tǒng)
(二)分區(qū)方式:MBR和GPT分區(qū)
1. MBR (Master Boot Record) 主引導記錄
-
磁盤的0磁道0扇區(qū)被稱為MBR,一共512bytes的空間分配如下:
- 446 bytes: boot loader 引導程序,linux使用grub2
- 64 bytes: DPT 分區(qū)表,每16byte描述一個分區(qū),可以描述四個分區(qū)
- 2 bytes: 55AA,結(jié)束標志,表示磁盤有數(shù)據(jù)
從分區(qū)表的容量看,磁盤只能分為四個分區(qū),稱為主分區(qū)。為了能夠分出更多分區(qū),MBR允許建立一個擴展分區(qū),再在擴建分區(qū)內(nèi)創(chuàng)建邏輯分區(qū)。擴展分區(qū)占據(jù)一個主分區(qū)位置,分區(qū)信息存放在MBR中,從而主分區(qū)和擴展分區(qū)一共不能超過四個。
-
邏輯分區(qū)的分區(qū)信息存放:擴展分區(qū)中的每個邏輯分區(qū)的0扇區(qū)被稱為EBR擴展引導記錄,其512bytes的空間分配類似于MBR。
- 446bytes: 未使用
- 64byte: 分區(qū)表,第一個16bytes指向本邏輯分區(qū),第二個16bytes指向下一個邏輯分區(qū),其余兩個16bytes尚未使用
- 2 bytes: 55AA,結(jié)束標志
BIOS(基本輸入輸出系統(tǒng))硬件支持MBR分區(qū)方式,使操作系統(tǒng)啟動
2. GPT (GUID Partition Table)
GUID (Global Unique Identifiers) 全局唯一標識符:GPT分區(qū)模式下沒有主分區(qū)、擴展分區(qū)、邏輯分區(qū)之分,每個分區(qū)以128位的UUID (Universally Unique Identifier) 標識。
GPT分區(qū)表自動備份在分區(qū)頭尾,并有CRC校驗位
GPT分區(qū)支持128個分區(qū),使用64位,支持8Z(512Byte/block )64Z (4096Byte/block)
UEFI (統(tǒng)一擴展固件接口) 硬件支持GPT分區(qū)方式,使操作系統(tǒng)啟動
(三)磁盤分區(qū)的管理
lsblk 列出塊設(shè)備
-
磁盤分區(qū)管理工具
- fdisk 創(chuàng)建MBR分區(qū)
- gdisk 創(chuàng)建GPT分區(qū)
- parted 高級分區(qū)操作
1、parted 命令使用
語法:
parted [選項]... [設(shè)備[命令[參數(shù)]...]...]
用例
parted /dev/sdb mklabel gpt|msdos //建立GPT或MBR分區(qū)
parted /dev/sdb print //顯示磁盤分區(qū)情況
parted /dev/sdb mkpart primary 1 200 //建立主分區(qū),大小從1M到200M
parted /dev/sdb rm 1 //刪除編號為1的分區(qū)
parted -l //列出所有塊設(shè)備分區(qū)情況
- 實驗:
1.將新添加200G的磁盤建立MBR分區(qū)表
命令:parted /dev/sdb mklabel msdos
2.建立主分區(qū)1,大小從1M到1024M
命令:parted /dev/sdb mkpart primary 1 1024
3.建立主分區(qū)2,大小從1025M到3072M
命令:parted /dev/sdb mkpart primary 1025 3072
4.刪除主分區(qū)2
命令:parted /dev/sdb rm 2
2、fdisk 命令使用
- 用法:
fdisk -l [-u] [device...] //查看分區(qū),使用-u=cylinders選項以柱面為單位查看
#----------------------------------------------------------------------------#
fdisk device //管理分區(qū)
子命令:
p //分區(qū)列表
t //更改分區(qū)類型
n //創(chuàng)建新分區(qū)
d //刪除分區(qū)
v //校驗分區(qū)
u //轉(zhuǎn)換單位
w //保存并退出
q //不保存并退出
- 實驗:
1.新加一塊100G的磁盤/dev/sdb,分別以扇區(qū)和柱面為單位查看磁盤分區(qū)信息
命令:
fdisk -l /dev/sdb
fdisk -l -u=cylinders /dev/sdb
2.磁盤分區(qū):第一個主分區(qū)500M,第二個主分區(qū)10G,擴展分區(qū)50G,其中第一個邏輯分區(qū)20G,第二個邏輯分區(qū)占用擴展分區(qū)剩余空間
2.1命令fdisk /dev/sdb
后,進入提示頁面,輸入n
代表新建分區(qū):
(1)提示選擇分區(qū)類型,輸入p
或者直接回車表示新建主分區(qū);
(2)提示選擇分區(qū)編號,默認1
,回車選擇默認設(shè)置;
(3)提示分區(qū)開始扇區(qū),回車按默認設(shè)置;
(4)提示分區(qū)結(jié)束扇區(qū),輸入+500M
,代表分區(qū)大小500M
,回車完成第一個主分區(qū)設(shè)置。其余分區(qū)設(shè)置基本類似,按提示操作即可。
2.2分區(qū)建立完成后,輸入p查看分區(qū)列表
3.刪除第一個20G邏輯分區(qū),查看分區(qū)表發(fā)現(xiàn)原第二個邏輯分區(qū)的命名有了變化,證明磁盤的命名并不穩(wěn)定,編寫腳本時要特別防止代碼中出現(xiàn)硬盤設(shè)備名稱
4.刪除50G擴展分區(qū),發(fā)現(xiàn)內(nèi)部的邏輯分區(qū)同時被刪除
5.不保存分區(qū)設(shè)置并退出:輸入q即可
- gdisk用于GPT分區(qū),使用方式和fdisk類似。
3、同步分區(qū)表
使用分區(qū)工具劃分分區(qū)后,需要將磁盤上的分區(qū)信息同步至內(nèi)存中
查看內(nèi)核是否已經(jīng)識別新的分區(qū):
cat /proc/partitions
CentOS 6上同步分區(qū)
partx
或kpartx
partx -a /dev/device //同步增加的分區(qū),-a 增加分區(qū)
kpartx -a /dev/device //同步增加的分區(qū),-f 強制同步分區(qū)表
partx -d --nr M-N /dev/device //同步減少的分區(qū),-d 刪除分區(qū),-nr 指明刪除分區(qū)范圍
kpartx -d /dev/device //同步減少的分區(qū)
- CentOS 5和CentOS 7上同步分區(qū)
partprobe
partprobe [/dev/device] //同步分區(qū)
三、文件系統(tǒng)
功能:組織和分配存儲設(shè)備的空間
查看系統(tǒng)支持的文件系統(tǒng)類型:ls /lib/modules/`uname -r`/kernel/fs
-
文件系統(tǒng)類型
- linux:ext2, ext3, ext4, xfs, swap
- 光盤::iso9660
- Windows:fat32, exfat, ntfs
- 網(wǎng)絡文件系統(tǒng):NFS, CIFS
- RAW:未經(jīng)處理或未經(jīng)格式化產(chǎn)生的文件系統(tǒng)
-
是否支持日志
- 支持日志:ext3, ext4, xfs
- 不支持日志:ext2, vfat
四、文件系統(tǒng)管理
(一)創(chuàng)建文件系統(tǒng) mkfs
- 語法:
mkfs.fstype /dev/device //fstype: ext3,ext4,xfs .etc
mkfs -t fstype /dev/device //fstype: ext3,ext4,xfs .etc
- mke2fs:ext文件系統(tǒng)專用管理工具,使用mkfs建立ext文件系統(tǒng)自動調(diào)用此命令
選項:
-t {ext2 | ext3 | ext4} //分區(qū)類型
-b {1024 | 2048 | 4096} //指定塊的大小
-L 'LABEL' //指定卷標
-j //相當于-t ext3,mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
-i # //一個inode標識多少字節(jié)空間,不要小于block大小,格式化后不能更改
-N # //指定分區(qū)中創(chuàng)建多少個inode
-I # //一個inode記錄占用的磁盤空間大小,范圍:128至4096,格式化后不能更改
-m # //為管理人員預留空間占總空間的百分比,默認5%
-O FEATURE //啟用指定特性
-O ^FEATURE //關(guān)閉指定特性
- 實驗:
現(xiàn)在有三個分區(qū)尚未創(chuàng)建文件系統(tǒng),按以下配置創(chuàng)建:
(1)/dev/sdb1,ext3分區(qū),卷標"USER";
(2)/dev/sdb2,ext4分區(qū),塊大小2048字節(jié),2048字節(jié)/inode;
(3)/dev/sdb3,ext4分區(qū),預留空間占比2%。 - 命令:
mkfs.ext3 -L 'USER' /dev/sdb1
mke2fs -t ext4 -b 2048 -i 2048 /dev/sdb2
mkfs -t ext4 -m 2 /dev/sdb3
對/dev/sdb1建立文件系統(tǒng)后,顯示的信息中:第一個紅框表示卷標設(shè)置成功,第二個紅框表示默認有5%的分區(qū)空間預留給超級用戶,第三個紅框表示超級塊備份到分區(qū)的很多地方
對/dev/sdb2建立文件系統(tǒng)后,顯示的信息中:紅框中的inode數(shù)和block數(shù)基本相同,這是因為建立文件系統(tǒng)時塊大小和每個inode標識塊的大小相同。-i選項數(shù)值應該大于-b選項值,只有這樣產(chǎn)生的inode數(shù)才會少于block數(shù)。否則,inode數(shù)大于block數(shù),多出的inode數(shù)就被浪費掉了。
對/dev/sdb3建立文件系統(tǒng)后,顯示的信息中:紅框中的為超級用戶的預留空間為總空間的2%。
(二)管理文件系統(tǒng)
- blkid 查詢塊設(shè)備屬性
blkid -U UUID //根據(jù)指定的UUID查詢設(shè)備
blkid -L LABLE //根據(jù)指定的LABLE查詢設(shè)備
- findfs 查找分區(qū),功能與blkid類似
findfs UUID="uuid" //根據(jù)指定的UUID查詢設(shè)備
findfs LABEL="label" //根據(jù)指定的LABLE查詢設(shè)備
- tune2fs 修改ext文件系統(tǒng)的可修改屬性
-l //查看指定文件系統(tǒng)超級塊(superblock)信息
-L 'LABEL' //修改卷標,也可以使用 e2label /dev/device label 修改
-m # //修改預留給管理員的空間百分比
-j //將ext2升級為ext3,即添加日志功能
-O //文件系統(tǒng)屬性啟用或禁用,禁用在屬性前加^
-o //調(diào)整文件系統(tǒng)的默認掛載選項,禁用在屬性前加^
-U UUID //修改UUID號
- 實驗:將分區(qū)/dev/sdb2預留給管理員空間的百分比調(diào)至3%,增加卷標"TWO",掛載屬性添加acl支持
命令:
tune2fs -l /dev/sdb2
tune2fs -L 'TWO' -m 3 -o acl /dev/sdb2
首先使用-l選項查看當前文件系統(tǒng)的配置信息,第一個紅框表明默認掛載選項為空,第二個紅框38556/771120=5%表明為管理員預留的5%空間率。
修改文件系統(tǒng)屬性后,再次查看,如圖紅框中所示:增加了acl掛載選項,為管理員預留的空間率變?yōu)?3133/771120=3%。
- dumpe2fs 顯示超級塊和塊組信息
dumpe2fs /dev/device //顯示設(shè)備的超級塊和塊組信息
dumpe2fs -h /dev/device //只顯示設(shè)備的超級塊信息
(三)文件系統(tǒng)檢測和修復
常發(fā)生在死機、意外關(guān)機之后
文件系統(tǒng)修復必須在未掛載狀態(tài)下
-
fsck (File System Check) 文件系統(tǒng)修復工具
語法,以下兩種格式均可:
fsck.FS_TYPE [options] /dev/device
fsck -t FS_TYPE [options] /dev/device選項:
-p: 自動修復錯誤
-r: 交互式修復錯誤
e2fsck ext文件系統(tǒng)修復工具
e2fsck -y /dev/device //修復過程自動回答yes
e2fsck -f /dev/device //強制檢測修復分區(qū),即使分區(qū)沒問題也執(zhí)行
- 實驗:修復文件系統(tǒng)
命令:
dumpe2fs /dev/sdb1 | head -100
dd if=/dev/zero of=/dev/sdb1 bs=1 count=4096
tune2fs -l /dev/sdb1
e2fsck -y /dev/sdb1
首先使用dumpe2fs 命令查看塊組信息,如圖第2行指明/dev/sdb1分區(qū)的主超級塊位于塊1,下一步考慮破壞塊1制造磁盤文件系統(tǒng)損壞
可以看到使用dd命令在對/dev/sdb1分區(qū)的前4096字節(jié)破壞后,磁盤出現(xiàn)了損壞,提示沒有發(fā)現(xiàn)有效的系統(tǒng)超級塊
可以看到/dev/sdb1修復成功,紅框內(nèi)文件系統(tǒng)狀態(tài)為clean
五、掛載 mount
掛載:將文件系統(tǒng)與當前目錄樹中的目錄建立聯(lián)系,從而通過進入目錄訪問該文件系統(tǒng)
卸載:解除文件系統(tǒng)與被掛載目錄的聯(lián)系關(guān)系
被掛載的目錄稱作掛載點,掛載后目錄下的內(nèi)容將暫時被隱藏,無法被訪問
掛載點一般選擇空目錄,避免目錄原內(nèi)容無法訪問的問題
(一)mount 掛載命令
語法:
mount [options] device mount_point
分區(qū)設(shè)備:包含設(shè)備文件、UUID、卷標、偽文件系統(tǒng)
UUID: -U "UUID" 卷標:-L "LABEL"掛載點:建議使用空目錄
選項:
-t vsftype //指定要掛載設(shè)備的文件系統(tǒng)類型,不指明系統(tǒng)會檢測文件系統(tǒng)類型
-r //readonly,只讀掛載
-w //read and write, 讀寫掛載
-n //不更新/etc/mtab,mount不可見
-a //自動掛載所有支持自動掛載的設(shè)備(在/etc/fstab文件定義,且掛載選項中有auto功能)
-L 'LABEL' //以卷標指定掛載設(shè)備
-U 'UUID' //以UUID指定要掛載的設(shè)備
-B, --bind //綁定目錄到另一個目錄上
- -o 掛載文件系統(tǒng)的子選項:
async //異步模式
sync //同步模式——內(nèi)存更改時同時寫磁盤
atime/noatime //是否更新文件系統(tǒng)文件和目錄的atime時間戳
diratime/nodiratime //是否更新目錄的atime時間戳
auto/noauto //是否支持自動掛載,即是否支持-a選項
exec/noexec //是否支持在文件系統(tǒng)上運行應用程序
dev/nodev //是否支持在此文件系統(tǒng)上使用設(shè)備文件
suid/nosuid //是否支持suid和sgid權(quán)限
remount //重新掛載,經(jīng)常在給只讀文件系統(tǒng)增加寫屬性時配合-rw選項使用
ro //只讀
rw //讀寫
user/nouser //是否允許普通用戶掛載此設(shè)備,/etc/fstab使用
acl //啟用此文件系統(tǒng)上的acl功能
loop //使用loop設(shè)備
defaults //相當于rw, suid, dev, exec, auto, nouser, async, and relatime
cat /proc/mounts
查看內(nèi)核追蹤到的所有已掛載設(shè)備,mount -n選項的掛載也可以看到實驗:
按以下要求掛載:
(1)/dev/sdb1掛在到/mnt/dir1,不更新時間戳
(2)/dev/sdb2掛在到/mnt/dir2,只讀模式,然后不卸載直接改為讀寫模式
(3)/dev/sdb3掛在到/mnt/dir3,不支持suid和sgid權(quán)限,不更新/etc/mtab
(4)將/app/file1文件掛載到/mnt/dir4
(5)將/etc目錄掛載到/mnt/dir5
(6)將/dev/sdb2掛載到/mnt/dir6
命令:
//first step
mount -o noatime /dev/sdb1 /mnt/dir1
//second step
mount -o ro /dev/sdb2 /mnt/dir2
mount -o remount,rw /dev/sdb2 /mnt/dir2
//third step
mount -o nosuid -n /dev/sdb3 /mnt/dir3
//forth step
dd if=/dev/zero of=/app/file1 bs=1M count=500
mkfs -t ext3 /app/file1
mount -o loop /app/file1 /mnt/dir4
//fifth step
mount -B /etc /mnt/dir5
//sixth step
mount /dev/sdb2 /mnt/dir6
mount /dev/sdb3 /mnt/dir1
第一步,掛載成功。
第二步,第一次掛載時采用只讀模式,導致無法新建文件;重新掛載時改為讀寫模式,成功新建文件。
第三步,掛載后無論df命令還是mount命令都無法看到/dev/sdb3的掛載信息。
此時,只能從/proc/mounts下才能看到。
將/bin/cat文件拷貝至/mnt/dir3并為其增加suid權(quán)限,登錄普通用戶并嘗試訪問/etc/shadow文件失敗。此時,重新掛載將屬性改為suid,再登錄普通用戶并嘗試訪問/etc/shadow文件成功。
第四步,使用dd命令創(chuàng)建文件,使用mkfs命令創(chuàng)建文件系統(tǒng),df結(jié)果證明文件也可以掛載。
第五步,mount時使用-B選項成功掛載。此時,發(fā)現(xiàn)原目錄和掛載點目錄下文件完全相同,并且出現(xiàn)了相同文件inode號相同,inode節(jié)點數(shù)卻是1的特殊現(xiàn)象。
第六步,將/dev/sdb2掛載到/mnt/dir6后發(fā)現(xiàn)掛載成功,/mnt/dir2和/mnt/dir6都能夠訪問/dev/sdb2分區(qū)內(nèi)容。將/dev/sdb3掛載到/mnt/dir1后發(fā)現(xiàn)掛載成功,但/mnt/dir1訪問的是/dev/sdb3分區(qū)內(nèi)容,/dev/sdb1分區(qū)內(nèi)容被隱藏。所以,單個分區(qū)可以掛載到不同目錄,但不要把幾個分區(qū)掛載到同一個目錄。
(二)unmount 卸載命令
卸載前需要確保文件系統(tǒng)沒有被進程訪問,如果有,需要查詢是什么進程訪問文件系統(tǒng),如有必要需要終止占用的進程。
查看掛載情況
findmnt mount_point | device
查看正在訪問文件系統(tǒng)的進程
// 兩個命令均可
lsof mount_point
fuser -v mount_point
終止正在訪問文件系統(tǒng)的進程
fuser -km mount_point
卸載
umount mount_point | device
在有進程訪問時卸載分區(qū)
在另一個終端用vim訪問/mnt/dir1目錄內(nèi)的文件,用lsof
或fuer -v
發(fā)現(xiàn)訪問程序,使用fuer -km
命令強行結(jié)束訪問分區(qū)的vim程序,從而順利卸載分區(qū)。
(三)/etc/fstab 文件
/etc/fstab文件用于配置文件系統(tǒng)體系,系統(tǒng)啟動時按照此文件的設(shè)置掛載文件系統(tǒng),同時被mount, fsck等工具使用
-
/etc/fstab文件格式:每行定義一個要掛載的文件系統(tǒng),具體如下
- 要掛載的文件系統(tǒng):可以是設(shè)備文件、UUID、LABEL和偽文件系統(tǒng)(e.g. proc)
- 掛載點
- 文件系統(tǒng)類型
- 掛載選項:defaults
- 備份頻率:0-不備份;1-每天備份;2-隔一天備份
- 自檢次序:0-不自檢;1-首先自檢,一般只有根文件系統(tǒng)才會設(shè)置
實驗:系統(tǒng)啟動時自動掛載分區(qū),具體如下:
(1)/dev/sdb1掛載到/mnt/dir1
(2)將/app/file1文件掛載到/mnt/dir4
(3)將/etc目錄掛載到/mnt/dir5
編輯/etc/fstab文件增加如下幾行:
UUID=c825e990-eb35-49b1-9f94-72b06786b612 /mnt/dir1 ext3 defaults 0 0
/app/file1 /mnt/dir4 ext3 loop 0 0
/etc /mnt/dir5 none bind 0 0
通過blkid查看/dev/sdb1的UUID,用于編輯/etc/fstab文件。編輯完成后,重啟系統(tǒng)會按照/etc/fstab的設(shè)置啟動各個分區(qū)。當新添加的配置信息的掛載選項中有auto時(default中有auto,直接寫loop或者bind也包含default選項),執(zhí)行mount -a
選項會自動掛載/etc/fstab文件有auto選項的新添加條目。
(四)交換分區(qū):系統(tǒng)內(nèi)存的補充
-
交換分區(qū)設(shè)置步驟:
- 創(chuàng)建交換分區(qū)
fdisk
或文件,注意改變分區(qū)類型 - 使用
mkswap
命令寫入特殊簽名 - 在
/etc/fstab
文件中添加條目 - 使用
swapon -a
激活交換分區(qū)
- 創(chuàng)建交換分區(qū)
啟用交換分區(qū)
swapon [options] [device]
-a //激活所有交換分區(qū)
-p priority //指定優(yōu)先級,priority=0~32767,值越大優(yōu)先級越高
禁用交換分區(qū)
swapoff [options] [device]
-
交換分區(qū)優(yōu)先級:
- 交換分區(qū)優(yōu)先級值越大優(yōu)先級越高
- 系統(tǒng)指定的交換分區(qū)優(yōu)先級從-1開始,每加入一個用戶沒有指定的交換分區(qū),其優(yōu)先級減一,故越早加入的系統(tǒng)指定交換分區(qū)優(yōu)先級越高
- 用戶指定的交換分區(qū)優(yōu)先級范圍:0-32767,所以任意用戶指定的交換分區(qū)優(yōu)先級高于系統(tǒng)指定
- 調(diào)整交換分區(qū)優(yōu)先級用于優(yōu)化性能,提高存取速度較快的交換分區(qū)優(yōu)先級
實驗:交換分區(qū)的設(shè)置
命令:
fdisk /dev/sdb5
mkswap /dev/sdb5
vim /etc/fstab
swapon -a
swapoff -a
分區(qū)時注意改變作為交換分區(qū)的分區(qū)system id,通過fdisk工具的t選項將id號由默認83改為82
建立swap分區(qū),通過blkid命令可以看到/dev/sdb5已經(jīng)成為swap分區(qū)
vim編輯/etc/fstab文件,增加條目,內(nèi)容如下:
UUID=2b29e986-cd2c-435e-9431-6636c834a1e5 swap swap defaults 0 0
掛載交換分區(qū)成功,查看優(yōu)先級發(fā)現(xiàn)系統(tǒng)默認新添加的交換分區(qū)優(yōu)先級低于舊交換分區(qū)
再次編輯/etc/fstab文件,將/dev/sdb5分區(qū)的掛載選項增加pri值為10,再次掛載交換分區(qū),此時發(fā)現(xiàn)/dev/sdb5的優(yōu)先級最高
(五)掛載移動介質(zhì)
訪問移動介質(zhì)前必須掛載
摘除移動介質(zhì)前必須卸載
掛載點通常在/media和/mnt下
1. 使用光盤
光盤自動掛載目錄:
/run/media/<user>/<label>
手動掛載:
mount /dev/cdrom /mnt
卸載并彈出光盤:
eject
創(chuàng)建iso文件:
cp /dev/cdrom filename.iso //從光盤創(chuàng)建iso文件
mkisofs -r -o filename.iso /path //將目錄下的所有文件打包為iso文件
- 實驗:將CentOS 6.9 兩張光盤內(nèi)容合成為一個iso文件
命令:
//first step 將光盤1的內(nèi)容復制到/app/CentOS_6.9_Final_Everything目錄下
cp -r /media/CentOS_6.9_Final/ /app/CentOS_6.9_Final_Everything
//second step 將光盤2的內(nèi)容復制到/app/CentOS_6.9_Final_Everything目錄下
cp -r /media/CentOS_6.9_Final/Packages/* /app/CentOS_6.9_Final_Everything/Packages/
//third step 安裝mkdvdiso.sh的依賴isomd5sum
yum install isomd5sum
//final step 執(zhí)行mkdvdiso.sh生成可啟動的iso文件
bash mkdvdiso.sh /app/CentOS_6.9_Final_Everything/ /app/CentOS_6.9_x86_64_Final_Everything.iso
2. 掛載USB介質(zhì)
查看USB設(shè)備是否被識別
lsusb
USB介質(zhì)會被內(nèi)核識別為SCSI設(shè)備,設(shè)備編號類似/dev/sdb1
自動掛載目錄:
/run/media/<user>/<label>
手動掛載:
mount /dev/sdb1 /mnt
(六) 磁盤管理常用工具
free 內(nèi)存空間狀態(tài)查詢
free [-m | -g | -h] //-m 以MB為單位,-g 以GB為單位,-h以人類易讀方式顯示
df 文件系統(tǒng)占用等信息查詢
df [options] [files]
-H //以1000為單位
-h //以人類易讀方式顯示
-i //顯示節(jié)點號
-T //顯示文件系統(tǒng)類型
- du 查看目錄總體空間占用情況
du [options] dir
-h //以人類易讀方式顯示
-s //顯示摘要信息
- dd 轉(zhuǎn)化并復制文件
語法:dd if=/path/to/src of=/path/to/dest bs=# count=#
解釋:
if //從設(shè)備文件、文件處輸入
of //輸出至文件
bs //指定輸入、輸出的塊大小
ibs //一次輸入塊的大小
obs //一次輸出塊的大小
cbs //一次轉(zhuǎn)化塊的大小
skip //從開頭忽略輸入的塊數(shù)
seek //從開頭忽略輸出的塊數(shù)
count //拷貝記錄數(shù)
應用:
dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1 //備份MBR
dd if=/dev/zero of=/dev/sda bs=64 count=1 seek=446 //破壞MBR的分區(qū)表
dd if=/dev/sda of=/dev/sdb //將磁盤/dev/sda整體備份至/sdb/sdb
dd if=/dev/sda of=/path/to/image //將磁盤/dev/sda整體備份為image文件
dd if=/path/to/image of=/dev/sda //將image文件恢復至磁盤/dev/sda
dd if=/dev/urandom of=/dev/sda //用隨機數(shù)據(jù)填充硬盤,可用于銷毀數(shù)據(jù)