※磁盤管理
計算機是由五大組成部件:輸入設備,輸出設備,存儲器,運算器,控制器,其中輸入設備我們稱之為I/O設備,如鍵盤,掃描器,運算器和控制稱之為cpu,存儲器如,內存,硬盤,優盤。計算機其實只需要內存和cpu其實已經可以完成工作了,但是內存屬于隨機存儲設備,斷電之后就丟失數據,所以我們就需要通過其他的輔助存儲設備來彌補內存的不足,這些輔存我們稱之為外存。
在linux中,一切皆文件,因此linux所有設備的操作都是通過文件接口來實現的,也就是在訪問設備的時候就如同訪問一個文件一樣,因為他們使用的都是文件系統接口。磁盤管理的操作就是通過操作磁盤來改寫設備文件來實現,那么接下來就講講設備文件
設備文件分為兩類:
塊設備:block,存儲單位是塊,隨機訪問的設備,如硬盤
字符設備:char,存儲單位是字符,線性的設備,如鍵盤
每個設備都有一個文件作為它的訪問入口,此文件我們稱之為設備文件,該文件關聯至一個設備驅動程序,進而能夠與之對應的硬件設備進行通信。在linux系統中每個設備都是在內核集中,都是靠一個設備號來進行標識的。
設備編號
用來標識設備,不同類別的設備有不同的設備號,同一類別的設備有不同的設備或多個設備,因此就有主設備號和次設備號。
主設備號:major number,表示設備類型,用于標明設備所需的驅動程序
次設備號:minor number,標識同一類型下的不同設備,特種設備的訪問入口
我們可以通過ls –l /dev/*來查看設備的編號
磁盤接口類型
并口:
IDE:133MB/s
SCSI:640MB/s
串口:
SATA:6Gbps
SAS:6Gbps
USB:480MB/s
每種接口其傳輸速率也是不同的
磁盤設備的設備文件命令
這些磁盤的設備文件放在/dev/目錄下
IDE:/dev/hd[a-z]
第一個IDE口
主:/dev/hda 從:/dev/hdb
第二個IDE口
主:/dev/hdc 從:/dev/hdd
SCSI,SATA,SAS,USB等接口類型的硬盤都是以/dev/sd[a-z]來命名的
第一塊硬盤表示為/dev/sda 第二塊硬盤位:/dev/sdb依次類推
同一設備上的不同分區,1,2……
/dev/sda1第一塊硬盤的第一個分區,依次類推第二個分區/dev/sda2 ,/dev/sda5第一塊硬盤的第一個邏輯分區
※硬盤結構
硬盤是由盤片,軸,馬達,機械臂,和磁頭組成,盤片固定在旋轉軸上,馬達帶動軸進行訓傳,機械臂上裝有磁頭,磁頭是懸浮在盤片上的,用來讀寫盤片上的數據,機械臂可以伸縮來進行尋到
每個盤片上被分成n個同心圓,稱之為磁道,是真正用來存儲數據的地方,至于磁道上能存儲多少數據,取決硬盤制造商的工藝。
現在的硬盤都是雙面讀寫的,所謂雙面是一個盤片上的上下兩面均可讀寫;每個盤面上相同位置都會有一個相同的編號,所有相同編號的磁道稱之為柱面。磁盤上的每個磁道被等分成若干個弧段,這些弧段我們稱之為磁盤的扇區。每個扇區的大小為512個字節
為什么要分區?
1. 優化I/O性能
2. 實現磁盤空間配額限制
3. 提高修復速度
4. 隔離系統和程序
5. 安裝多個OS
※分區
根據硬盤的結構分析,所有的磁頭都是一起同時運動的,如果要讀寫一個文件數據的時候,只是在一個盤面上進行操作要比同時在其他所有盤面上操作花費的時間要長,另外根據物理運動原理,外側磁道的讀寫速度要比內側磁道的讀寫速度快很多,這是因為單位時間內磁頭在盤面上滑過的距離要長,因此磁盤的分區是根據柱面來劃分的。
每個盤面上一個柱面只能屬于一個分區,而且由外向內多個柱面組合成一個分區來使用,因此越靠外的柱面其讀寫速率越高,這也正是越靠近外側的分區其讀寫速度越快的原因。在硬盤上有一個叫做0磁道0扇區是被預留出來的,它不屬于任何分區,這個扇區稱之為MBR(Master Boot Record),嚴格來說它是用來存儲MBR的一段空間
※MBR
該扇區的大寫為512bytes,專門用來存儲MBR(主引導記錄)MBR又被分為三部分:
446bytes:前446個字節存儲的是引導加載器(boot loader)
64bytes:存儲分區表,有多少個分區,每個分區從哪里開始到哪里結束,其中每16bytes標識一個分區,因此,一塊硬盤最多只能有4個主分區。
4個主分區:3個主分區+1擴展分區(n個邏輯分區)
2bytes:前面信息的有效標識,用4個十六進制數來表示55AA,表示前面510bytes是有效的。
MBR分區結構
GPT分區
GPT:GUID patition table 支持128個主分區,使用64位,支持8Z(512Byte/block)64Z(4096Byte/block),使用128位UUID表示磁盤和分區GPT分區表自動備份在頭和尾兩份,并有CRC校驗位,只有支持UEFI(同意擴展固件接口)硬件支持GPT
※管理分區
列出塊設備
blkid
/dev/sda1: UUID="ff619e21-e6f7-4e9e-aff1-bbe13123764e" TYPE="ext4"
創建分區使用:
fdisk創建MBR分區,也支持GPT,最多只能管理15分區
gdisk創建GPT分區
GNU parted高級分區操作(創建、復制、調整大小等等)
partprobe重新設置內存中的內核分區表版本
磁盤分區管理工具
fdisk parted sfdisk
查看分區情況
fdisk –l /dev/device
創建分區 /dev/device
fdisk創建分區是一個交互式界面,有許多子命令
p顯示分區列表
t更改分區類型
n創建新分區
d刪除分區
w保存并退出
q不保存退出
l列出所有的系統類型
查看內核是否已經識別新分區:cat /proc/partitions
對于已經處于使用狀態的磁盤來講,新建分區后需要讓內核重讀其分區表
centos5之前
partprobe /dev/device
centos6、7
新增分區
partx -a /dev/device
kpartx -af /dev/device
刪除分區:
partx –d –n M:N /dev/device
partx –d nr N-M /dev/device
parted命令
parted命令有兩種運行模式:命令模式和交互模式,與fdisk的交互模式不同,在parted的交互模式下執行命令,一旦執行回車確認,命令就馬上執行,對磁盤的更改就理科生效。
parted命令的常用格式
parted [選項] <硬盤設備名> 交互模式,在該模式下輸入parted的子命令對其指定的硬盤進行分區操作。quit命令用于退出交互模式
parted [options] [device [command [options…]…]]命令模式,直接在命令行對指定的硬盤進行
※分區操作
-h –help 顯示幫助信息
-I –interactive 在必要時提示用戶
-l –list 顯示所有磁盤的分區表
-s –script 從不提示用戶
-v –version 顯示版本
※文件系統
文件系統是操作系統用于明確存儲設備或分區上的文件的方法和數據結構;即在存儲設備上組織文件的方法。操作系統中負責管理和存儲文件信息的軟件結構稱為文件管理系統,簡稱文件系統。
從系統角度來看,文件系統是對文件存儲設備的空間進行組織和分配,負責文件存儲并對存入的文件進行保護和檢索的系統。具體地說,它負責為用戶建立文件,存入、讀出、修改、轉儲文件,控制文件的存取,安全控制,日志,壓縮,加密等。
Linux文件系統
ext2:EXT2第二代擴展文件系統(英語:second extended filesystem,縮寫為 ext2),是LINUX內核所用的文件系統。它開始由Rémy Card設計,用以代替ext,于1993年1月加入linux核心支持之中。ext2 的經典實現為LINUX內核中的ext2fs文件系統驅動,最大可支持2TB的文件系統,至linux核心2.6版時,擴展到可支持32TB。其他的實現包括GNU Hurd,Mac OS X (第3方),Darwin (第3方),BSD。ext2為數個LINUX發行版的默認文件系統,如Debian、Red Hat Linux等
ext3:EXT3是第三代擴展文件系統(英語:Third extended filesystem,縮寫為ext3),是一個日志文件系統,常用于Linux操作系統。它是很多Linux發行版的默認文件系統。Stephen Tweedie在1999年2月的內核郵件列表中,最早顯示了他使用擴展的ext2,該文件系統從2.4.15版本的內核開始,合并到內核主線中。如果在文件系統尚未shutdown前就關機如(停電)時,下次重開機后會造成文件系統的資料不一致,故這時必須做文件系統的重整工作,將不一致與錯誤的地方修復。然而,此一重整的工作是相當耗時的,特別是容量大的文件系統,而且也不能百分之百保證所有的資料都不會流失。為了克服此問題,使用所謂“日志式文件系統 (Journal File System)” 。此類文件系統最大的特色是,它會將整個磁盤的寫入動作完整記錄在磁盤的某個區域上,以便有需要時可以回溯追蹤。由于資料的寫入動作包含許多的細節,像是改變文件標頭資料、搜尋磁盤可寫入空間、一個個寫入資料區段等等,每一個細節進行到
ext4:EXT4是第四代擴展文件系統(英語:Fourth extended filesystem,縮寫為 ext4)是Linux系統下的日志文件系統,是ext3文件系統的后繼版本,一些新功能違背向后兼容性,新功能使Ext3代碼變得更加復雜并難以維護,新加入的更改使原來十分可靠的Ext3變得不可靠。
xfs:XFS一種高性能的日志文件系統,最早于1993年,由Silicon Graphics為他們的IRIX操作系統而開發,是IRIX 5.3版的默認文件系統。2000年5月,Silicon Graphics以GNU通用公共許可證發布這套系統的源代碼,之后被移植到Linux 內核上。XFS 特別擅長處理大文件,同時提供平滑的數據傳輸。XfS文件系統是SGI開發的高級日志文件系統,XFS極具伸縮性,非常健壯。所幸的是SGI將其移植到了Linux系統中。在linux環境下。目前版本可用的最新XFS文件系統的為1.2版本,可以很好地工作在2.4核心下
btrfs: Btrfs(通常念成Butter FS),由Oracle于2007年宣布并進行中的COW(copy-on-write式)文件系統。目標是取代Linux目前的ext3文件系統,改善ext3的限制,特別是單一文件大小的限制,總文件系統大小限制以及加入文件校驗和特性。加入目前ext3/4未支持的一些功能,例如可寫的磁盤快照(snapshots),以及支持遞歸的快照(snapshots of snapshots),內建磁盤陣列(RAID)支持,支持子卷(Subvolumes)的概念,允許在線調整文件系統大小。
reiserfs:ReiserFS是一種新型的文件系統,它通過一種與眾不同的方式—完全平衡樹結構來容納數據,包括文件數據,文件名以及日志支持。ReiserFS還以支持海量磁盤和磁盤陣列,并能在上面繼續保持很快的搜索速度和很高的效率。
jfs:JFS( JOURNAL FILE SYSTEM),一種字節級日志文件系統,借鑒了數據庫保護系統的技術,以日志的形式記錄文件的變化。JFS通過記錄文件結構而不是數據本身的變化來保證數據的完整性。這種方式可以確保在任何時刻都能維護數據的可訪問性。
swap:Linux中Swap(即:交換分區),類似于Windows的虛擬內存,就是當內存不足的時候,把一部分硬盤空間虛擬成內存使用,從而解決內存容量不足的情況。Android是基于Linux的操作系統,所以也可以使用Swap分區來提升系統運行效率。
Windows:fat32,ntfs,fat16
Unix:FFS(fast),UFS(unix),JFS2
網絡文件系統:NFS,CIFS
集群文件系統:GFS2,OCFS2(oracle)
分布式文件系統:ceph,moosefs,mogilefs,glusterfs,Lustre
RAW:未經處理或者未經格式化產生的文件系統
光盤文件系統:iso9660
日志型文件系統
ext3,ext4,xfs
非日志文件系統
ext2,vfat
文件系統的組成部分
內核中的模塊:ext4,xfs,vfat
用戶控件的管理工具:mkfs.ext4,mkfs.xfs,mkfs.vfat
虛擬文件系統:VFS
查看支持的文件系統:cat /proc/filesystems
創建文件系統
mkfs命令:
mkfs [option] device
mkfs即make file system的縮寫
mkfs.fstype /dev/device
ext4
xfs
btrfs
vfat
mkfs –t fstype /dev/device
-L ‘label’設定卷標
mke2fs:ext系列文件系統專用管理工具
-t{ext2|ext3|ext4}:指定文件系統類型
-b{1024|2048|4096}:指定塊大小
-L “label”:指定卷標
-j 相當于 –t ext3
mkfs.ext3 = mkfs-t ext3 = mke2fs -j = mke2fs -t ext3
-i #:為數據空間中每多少個字節創建一個inode;次大小應該大于block的大小,一般為塊大小的2^n
-I #:inode size 大小為 128—4096
-N:為數據空間創建多少個inode
-m #:默認為5%,為管理員預留空間占總空間的百分比
-O feature[…]:啟用指定特性
feature:has_journal啟用日志功能 large_file文件系統能存儲的最大文件數,dir_index
-O ^feature:關閉指定特性
文件系統特性有:
dir_index 在大目錄下使用hash樹來快速查找
extent 在一個inode快中利用程度來存儲數據的位置方案
filetype 文件類型
flex_bg 允許塊組來防止在存儲介質上的任何位置
journal_dev 給定設備來替代普通ext2文件系統
resize_inode 調整inode的大小
sparse_super 用文件系低于超級塊的副本
uninit_bg 加快文件系統的創建時間長短
has_journal 帶有日志功能
large_file 文件系統支持最大的文件數
-F:強制創建文件系統
tune2fs
重新設定ext系列文件系統可調整參數的值
-l:查看指定文件系統超級快信息;super block
-L ‘label’ 修改卷標
-m #:修改預留給管理員的空間百分比
-j:將ext2的文件系統升級為ext3
-r:指定預留塊數
-O:設定默認的掛載選項
-o:設定文件系統的默認掛載選項
這里的文件系統特征跟mke2fs相同
-U:UUID,修改UUID號
dumpe2fs
-h:查看超級快信息,分區用分組管理
文件系統標簽
執行設備的另一種方法
與設備無關
blkid:塊設備屬性信息查看
blki [option]….[device]
-U UUID:根據指定的UUID來查找對應的設備,當我只知道uuid時可以使用此命令來查詢設備的信息
-L LABEL:根據指定的LABEL來查找對應的設備,對于卷標來說使用卷標也可以查詢設備名
e2label:管理ext系列文件系統的label卷標
e2label device 查看設備的卷標
e2label device label
findfs:查找分區,次命令的作用是用來查看卷標,或者更改卷標,有時候在腳本當紅運用到此功能
findfs [options] label=“label”
findfs [option] UUID=”uuid”
文件系統檢測和修復
因進程以外終止或系統奔潰等情況導入寫入等操作非正常終止時,可能會導致文件系統損壞,此時應該修復文件系統
注意,需要離線修復,也就是卸載文件系統
fsck :File System Check
fsck.fstype
fsck –t fstype
-a:自動修復錯誤
-r:交互式修復錯誤
注意:fstype一定要與分區上已有文件系統類型相同
e2fsck:ext系列文件專用的檢測修復工具
-y:自動回答為yes
-f:強制修復
※超級塊
超級塊的作用是存儲文件系統的大小,有多少使用和沒有使用的數量,以及他們各自的總數和其他諸如此類的信息。要使用一個分區來進行數據訪問,那么第一個要訪問的就是超級塊,所以如果超級快壞了,那磁盤基本沒救了。
超級快占用第1號物理塊,是文件系統的控制塊,超級塊包括,文件系統的大小,空閑塊數,空閑塊索引,空閑inode節點數目,空閑inode表數,封鎖標記。超級塊是系統為文件分配存儲空間,回收存儲空間的依據。
mount掛載
掛載:將新的文件系統關聯至當前根文件系統
卸載:將某文件系統與當前根文件系統的關聯移除
掛載點有如下要求:
此目錄沒有被其他進程使用
目錄的事先存在
目錄的原有文件將會暫時隱藏
掛載完成后,要通過掛載點訪問對應文件系統上的文件
掛載方法:mount device mount_point
mount
查看/etc/mtab文件顯示當前已掛載的所有設備
偽文件系統名稱:proc,sysfs,devtmpfs,configfs
常用選項
-t fstype:指定要掛載的設備上的文件系統類型,不適用此選項時,mount命令會調用blkid命令獲取對應文件系統的類型
-r:readonly,只讀掛載
-w:read and write,讀寫掛載
-n:不更新/etc/mtab,默認情況下,mount命令每掛載一個設備,都會把掛載的設備信息保存至/etc/mtab文件中,使用-n選項意味著掛載設備時,不會把信息寫入此文件
-a:表示掛載/etc/fstab文件中定義的所有文件系統
–U ‘UUID’ mount_point 通過uuid的方式來掛載文件系統
–L ‘label’ mount_point 通過卷標的方式來掛載文件系統
-B, –bind:綁定目錄到另一個目錄上,當我把/boot目錄又一次掛載到/media目錄下時,/media目錄下的內容和/boot下的內容完全一致
查看內核追蹤到的已掛載的所有設備:
cat /proc/mounts
-o options:(掛載文件系統的選項),多個選項使用逗號分隔
async:異步模式,數據寫操作先于內存完成,而后根據某種策略同步至持久設備中
sync:同步模式,內存更改時,同時寫磁盤
atime/noatime:包含目錄和文件
diratime/nodiratime:目錄的訪問時間戳
auto/noauto:是否支持自動掛載,是否支持-a選項
exec/noexec:是否支持將文件系統上運行應用程序
dev/nodev:是否支持在此文件系統上使用設備文件
suid/nosuid:不否支持suid和sgid權限
remount:重新掛載
ro:只讀
rw:讀寫
user/nouser:是否允許普通用戶掛載此設備,默認管理員才能掛載
acl:啟用此文件系統上的acl功能,默認不支持(centos6)
Defaults:相當于rw, suid, dev, exec, auto, nouser, async
卸載命令
查看掛載情況
findmnt mount_point
查看正在訪問指定文件系統的進程
lsof mount_point
fuser –v mount_point
終止所有正在訪問指定的文件系統的進程
fuser –km mount_point
卸載
umount device
umount mount_point
注意:必須掛載點設備沒有進程使用才能卸載
掛載點和/etc/fstab
配置文件系統體系
被mount、fsck和其他程序使用
系統重啟時保留文件系統體系
可以在設備欄使用文件系統卷標
使用mount -a 命令掛載/etc/fstab中的所有文件系統
文件掛載配置文件
/dev/mapper/VolGroup-lv_root / ext4 defaults 1 1
要掛載的設備或偽文件系統 掛載點 文件系統類型 掛載選項 轉儲頻率 自檢次序
要掛載的設備或偽文件系統:
設備、label(label=“ ”)、UUID(UUID=“ ”)、偽文件系統名稱(proc,sysfs)
掛載選項:defaults
轉儲頻率:
0:不做備份
1:每天轉儲
2:每隔一天轉儲
自檢次序:
0:不自檢
1:首先自檢;一般只有rootfs采用1
處理交換文件和分區
交換分區是系統RAM的補充
基本設備包括:
創建交換分區或者文件
使用mkswap寫入特殊簽名
在/etc/fstab文件中添加適當的條目
使用swapon –a激活交換空間
啟用swap
swapon [option]… [device]
-a:激活所有的交換分區
-p: priority指定優先級
/etc/fstab:pri=value
禁用:swapoff [option]… [device]
需要注意的是,在分區時要將文件系統的類型調成82,然后不需要格式化,直接使用mkswap命令創建swap
swap的優先級
用戶可以給某個swap指定一個0到32767的優先級
如果用戶沒有指定,那么核心會自動給swap指定一個優先級,這個優先級從-1開始,每加入一個新的沒有用戶指定優先級的swap,會給這個優先級減一。
先添加的swap的缺省優先級比較高,除非用戶自己指定一個優先級,而用戶指定的優先級(正數)永遠高于核心缺省指定的優先級(負數)
優化性能:分布存放,高性能磁盤存放。
移動介質
掛載意味著使外來的文件系統看起來如同是主目錄的一部分
訪問前、介質必須被掛載
摘除時,介質必須被卸載
按照模式設置,非根用戶只能掛載某些設備(光盤、DVD、軟盤、USB等等)
掛載點通常在/media或/mnt下
使用光盤
在圖形環境下自動啟動掛載/run/media/user/label
否則就必須被手工掛載
mount /dev/cdrom /mnt
eject命令卸載或彈出磁盤
創建ISO文件
cp /dev/cdrom /root/centos7.iso
mkisofs –r –o /root/etc.iso /etc
刻錄光盤
wodim -v -eject centos.iso
掛載USB介質
被內核探測為scsi設備
/dev/sdax/ /dev/sdbx 或類似的設備文件
在圖形環境自動掛載
圖標在計算機窗口中創建
掛載在/run/media/user/label
手動掛載
/mout /dev/sdb1 /mnt
常用工具
內存使用狀態:
free [option]
-m:以MB為單位
-g:以GB為單位
文件系統空間占用等信息的查看工具:
df [option]…[file]…
-H 以1000為單位
-T:文件系統類型
-h:human-reable,以人類易讀的方式顯示
-i:inodes instead of blocks
-P:以posix兼容的個數輸出
查看某目錄總體空間占用狀態:
du [option]….DIR
-h:human-readble
-s:summary
工具dd
dd命令:convert and copy a file
用法:
dd if=/path/from/src of=/path/to/dest
bs=#:block size,復制單元大小
count=#:復制多少個bs
of=file 寫到所命名的文件而不是到標準輸出
if=file 從命令文件讀取而不是從標準輸入
bs=size 指定塊大小
skip=blocks 從開頭忽略blocks個ibs大小的塊
seek=blocks 從開頭忽略blocks個obs大小的塊
count=n 只拷貝n個記錄
conv=conversion[,conversion…] 用指定的參數轉換文件。
轉換參數:
ascii 轉換EBCDIC 為ASCII
ebcdic 轉換ASCII 為EBCDIC
block 轉換為長度為cbs 的記錄,不足部分用空格填充。
unblock 替代cbs長度的每一行尾的空格為新行
lcase 把大寫字符轉換為小寫字符
ucase 把小寫字符轉換為大寫字符
swab 交換輸入的每對字節。
noerror 出錯時不停止
notrunc 不截短輸出文件。
sync 把每個輸入塊填充到ibs個字節,不足部分用空(NUL)字符補齊
·
拷貝磁盤
dd if=/dev/sda of=/dev/sdb
備份mbr
dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1
sfdisk –d /dev/sda >/tmp/mbr
破壞mbr中的bootloader
dd if=/dev/zero of=/dev/sda bs=64 count=1 seek=446
備份:
dd if=/dev/sda of=/dev/sdd
將本地的/dev/sda整盤備份到/dev/sdd
dd if=/dev/sdd of=/path/to/somofile
將/dev/sda全盤數據備份到指定路徑的文件
dd if=/dev/sda | gzip >/path/to/image.gz
備份/dev/sda全盤數據,并利用gzip工具進行壓縮,保存到指定路徑
恢復:
dd if=/path/to/file of=/dev/sda
將備份文件恢復到指定盤
gzip -dc /path/to/image.gz | dd of=/dev/sda
將壓縮的備份文件恢復到指定盤
拷貝內存資料到硬盤
dd if=/dev/mem of=/root/mem.bin bs=1024
將內存里的數據拷貝到root目錄下的mem.bin文件
從光盤拷貝iso鏡像
dd if=/dev/cdrom of=/root/cd.iso
拷貝光盤數據到root文件夾下,并保存為cd.iso文件
銷毀磁盤數據
dd if=/dev/urandom of=/dev/sda1
利用隨機的數據填充硬盤,在某些必要的場合可以用來銷毀數據。執行此操作以后,/dev/sda1將無法掛載,創建和拷貝操作無法執行。
得到最恰當的block size
dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file
dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file
dd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file
dd if=/dev/zero bs=8192 count=125000 of=/root/1Gb.file
通過比較dd指令輸出中所顯示的命令執行時間,即可確定系統最佳的block size大小
測試硬盤讀寫速度
dd if=/root/1Gb.file bs=64k | dd of=/dev/null
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
通過上兩個命令輸出的執行時間,可以計算出測試硬盤的讀/寫速度
1、創建一個2G的文件系統,塊大小為2048byte,預留1%可用空間,文件系統ext4,卷標為TEST,要求此分區開機后自動掛載至/testdir目錄,且默認有acl掛載選項
fdisk /dev/sda –>n–>p—>回車–>+2G—>w
partx -a /dev/sda
mke2fs -b 2048 -m 1 -t ext4 -L "TEST" /dev/sda3
mkdir /testdir
vim /etc/fstab加入如下行
UUID="79602101-81b7-40f3-b792-c4386be0cf79" /testdir ext4 defaults,acl 0 0
mount -a
2、寫一個腳本,完成如下功能:
(1) 列出當前系統識別到的所有磁盤設備;
(2) 如磁盤數量為1,則顯示其空間使用信息;
否則,則顯示最后一個磁盤上的空間使用信息;
#!/bin/bash
#
Diskcount=`fdisk -l |grep "^D.*/dev/sd[a-z].*"|wc -l`
Disk=`fdisk -l |grep "^D.*/dev/sd[a-z].*"|cut -d ' ' -f2|cut -d : -f1`
if [ $Diskcount -eq 1 ] ;then
fdisk -l $Disk
else
fdisk -l `fdisk -l |grep "^D.*/dev/sd[a-z].*"|cut -d ' ' -f2|cut -d : -f1|tail -1 `
fi
原創文章,作者:fszxxxks,如若轉載,請注明出處:http://www.www58058.com/40110
文章結構清晰,總結的內容完整,有理論有實踐,通過具體操作對各項命令進行了實踐。磁盤管理是作為系統管理員必備的基礎技能,需要熟練掌握。