管理分區
列出塊設備
lsblk
分區工具fdisk
fdisk -l /dev/sdX 查看硬盤分區信息
CentOS7: fdisk -l /dev/sda 默認開啟dos及扇區顯示模式
開啟dos及柱面顯示模式:fdisk -c=dos -u=cylinders -l /dev/sda
Centos6:fdisk -l /dev/sda 默認開啟非dos及柱面顯示模式
開戶非dos及扇區顯示模式:fdisk -cul /dev/sda
-c (centos6) 打開或禁用dos模式
-u (centos6) 切換顯示的單位(扇區/柱面)
-c (centos7) -c=dos -c=nondos
-u (centos7) -u=cylinders -u=sectors
fdisk /dev/sdX 進行分區
m 幫助
n 建立分區
d 刪除分區
p 顯示分區信息
t 轉換分區類型
a 將指定分區設置/取消 活動分區
L 查看分區類型
o 重建分區表
v 驗證分區表,顯示剩余沒有被分區劃分的扇區數量
g 創建GPT格式的分區(centos7)
q 退出不保存
w 退出并保存,不保存,所有的修改都不生效
echo -e “n\np\n1\n\n+1G\nw\n” |fdisk /dev/sdb 非交互式分區
echo的一串字符太復雜了,可以開啟另一個終端建立分區,操作一步然后寫入echo,這樣就不會復雜了
分區工具gdisk 功能類似于fdisk
fdisk不能查詢GPT類型的分區
parted命令
parted /dev/sdX 高級分區操作(創建、復制、調整大小等等)
help 查看幫助
mklabel msdos/gpt 指定分區類型
help mklable 查看mklabel的幫助
mkpart 建立分區
print 查看硬盤分區信息
rm number 刪除分區
parted /dev/sdX mkpart primary 1 1000 非交互式進行分區
同步分區表
查看內核是否已經識別新的分區:
cat /proc/partitions
對系統所在的硬盤增加或刪除分區,因為內存不會重讀系統所在硬盤的分區表,所以被增加或者刪除的分區信息用lsblk,cat /proc/partitions,fdisk查看都不會生效,這時可以用partprobe(Centos5,7),或partx(Centos6)同步分區表
CentOS 5,7: 使用partprobe
partprobe 當對系統所在的硬盤進行分區修改操作后,內存不會重讀分區表,需要使用partprobe強制重讀,centos6中有bug。
centos6通知內核重新讀取硬盤分區表
partx -a /dev/sdX 向內存中增加分區更新
kpartx-a /dev/DEVICE -f: force 向內存中增加分區更新
partx -d –nr X /dev/sdaX 從內存中刪除分區更新
管理文件系統
創建文件系統
mkfs命令(創建ext文件系統時也能用mke2fs的選項):
(1) mkfs.FS_TYPE/dev/DEVICE 創建文件系統指定類型
ext4
xfs
btrfs
vfat
例如:mkfs.ext4 /dev/sdb1
-f 強制創建類型為xfs的文件系統(直接敲mkfs.xfs /dev/sdd1 會提醒你使用-f強制覆蓋,此時再加個-f就能創建類型為xfs的文件系統)
(2) mkfs -t FS_TYPE /dev/DEVICE mkfs -t ext4 /dev/sdb1=mkfs.ext4 /dev/sdb1
-L ‘LABEL’: 設定卷標
-b 指定block大小 例如mkfs.ext4 -b 1500 /dev/sdd1 指定的數字必須大于1024,大于1024小于2048指定block大小為1024,大于2048小于4096指定block大小為2048,大于4096小于8192指定block大小為4096….以此類推
創建ext文件系統
mke2fs:ext系列文件系統專用管理工具
-t {ext2|ext3|ext4} 指定類型為{ext2|ext3|ext4}(不指定類型默認ext2)
-b {1024|2048|4096} 指定塊大小為{1k|2k|4k…|2^nk}只能是1024或2048或4096…或2^(n+10)其他數字不能
-L ‘LABEL’ 指定卷標 卷標可以在掛載的時候用 例如:munt LABEL=lihaile /app/tmp
centos5 在系統安裝時創建的文件系統,自動將與掛載點路徑命名為卷標
-j: 相當于-t ext3
mkfs.ext3 = mkfs-t ext3 = mke2fs -j = mke2fs -t ext3
-i#: 為數據空間中每多少個字節創建一個inode;此大小不應該小于block的大小
-N #:指定分區中創建多少個inode
-I 一個inode記錄占用的磁盤空間大小,128—4096
-m #: 默認5%,為管理人員預留空間占總空間的百分比
-O FEATURE[,…]:啟用指定特性
-O ^FEATURE:關閉指定特性
文件系統標簽
指向設備的另一種方法
與設備無關
blkid:塊設備屬性信息查看(可以查看塊設備的UUID,卷標,文件系統類型)
blkid[OPTION]… [DEVICE]
-U UUID: 根據指定的UUID來查找對應的設備
-L LABEL:根據指定的LABEL來查找對應的設備
e2label:管理ext系列文件系統的LABEL
e2label /dev/sdd1 查看卷標
e2label /dev/sdb1 LABELNAME 修改卷標
findfs:查找分區
findfs[options] LABEL=<label>
findfs[options] UUID=<uuid>
tune2fs
tune2fs:重新設定ext系列文件系統可調整參數的值
tune2fs /dev/sda10 修改文件系統信息
-l 顯示文件系統信息(與dumpe2fs -h 信息基本一致)
-L ‘LABEL’:修改卷標
-m #:修預留給管理員的空間百分比
-j: 將ext2升級為ext3
-O: 文件系統屬性啟用或禁用,–O ^has_journal
-o: 調整文件系統的默認掛載選項,–o ^acl
-U UUID: 修改UUID號
dumpe2fs
dumpe2fs /dev/sda10 查看文件系統信息:superblock信息及block group信息
-h 不顯示block group而只顯示superblock 與tune2fs -l一致
超級塊(super block)和inode table
group0里面放的是superblock,group1,3,5,7…里面放的是backup block(備份塊)
super block 存儲的是整個文件系統的簡單的信息,不能弄丟,弄壞,否則文件系統就不能被訪問,在企業中有可能會由于斷電非正常關機而導致super block壞了,文件系統不能掛載到目錄上,所以文件系統不能被訪問,這時可以用fsck/e2fsck檢測和修復文件系統
文件系統檢測和修復
常發生于死機或者非正常關機之后
掛載為文件系統標記為“no clean”
注意:一定不要在掛載狀態下修復
fsck/e2fsck 先卸載再修復
-t filetype
-f 強制修復(文件系統沒問題的話就不修復,如果你想修復加個-f強制修復)
-y 非交互式 自動回答“yes”
-r 交互式
-p 自動修復
(一定要先取消掛載再修復)
e2fsck:ext系列文件專用的檢測修復工具
-y:自動回答為yes
-f:強制修復
掛載mount
掛載:將額外文件系統與根文件系統某現存的目錄建立起關聯關系,進而使得此目錄做為其它文件訪問入口的行為 用mount 例如:mount /dev/sdd1 /app/tmp 文件系統在前,目錄在后
(當訪問文件系統里的數據時不能直接訪問文件系統,需要將文件系統掛載到目錄,通過訪問目錄來訪問文件系統)
卸載:為解除此關聯關系的過程 用umount 例如umount /app/tmp|/dev/sdd1 跟文件系統或者目錄二者任意選一
掛載點下原有文件在掛載完成后會被臨時隱藏
掛載點目錄一般為空
mount:通過查看/etc/mtab文件顯示當前已掛載的所有設備
mount 掛載時要指定掛載的塊設備例如:/dev/sdd1,也可以用卷標和UUID來代替塊設備例如:mount LABEL=LABELname /app/tmp或mount UUID=5fabb1e8-f112-44f6-9e6d-e62890c13fef /app/tmp
mount 常用命令選項
-t 指定文件系統類型
-r 只讀掛載
-w: read and write, 讀寫掛載(默認)
-o remount,ro|rw 也會更新/etc/fstab中的選項,如果與指定的沖突,則remount后指定的優先。
-n 隱藏掛載信息不顯示,但在/proc/mounts可以查到
-a 讀取/etc/fstab,掛載其中沒有掛載的設備
-L ‘LABEL’: 以卷標指定掛載設備
-U ‘UUID’: 以UUID指定要掛載的設備
-B –bind 目錄掛目錄
查看內核追蹤到的已掛載的所有設備:
cat /proc/mounts
-o 選項 掛載的功能
sync,async 同步,異步(defaults)
atime(defaults),noatime 是否在讀訪問時更新atime(現在/dev/sdd1掛載到目錄/app/tmp上,在里面創一個文件123,cat這個文件,這個文件的訪問時間就會發生改變,然后mount -o remount,noatime /app/tmp,再去cat這個文件,此時訪問時間不會發生改變,但touch這個文件訪問時間會發生改變)
diratime(defaults),nodiratime目錄的訪問時間戳
auto(defaults)/noauto寫在/etc/fstab當中的分區,是否在mount -a時被掛載(是否支持-a)
exec(defatuls)/noexec 在該分區所掛載的目錄中的腳本是否可以執行。
dev(defaults)/nodev:是否支持在此文件系統上使用設備文件
suid(defaults)/nosuid:不否支持suid和sgid權限
remount:重新掛載
ro:只讀
rw:讀寫(defaults)
user/nouser(defaults):是否允許普通用戶掛載此設備,默認管理員才能掛載
acl:啟用此文件系統上的acl功能
defaults 默認,見以上中的(defaults)相當于rw, nosuid, dev, exec, auto, nouser, async
findmnt 查看所有的掛載點
卸載命令
findmnt /dev/sdd3 查看設備的掛載狀況
lsof 設備名或掛載點
fuser -v 掛載點
-kv 掛載點 強制結束所有執行在掛載點上的進程
umount 設備名/掛載點
例如:umount /dev/sdb /app/tmp
原創文章,作者:fuming,如若轉載,請注明出處:http://www.www58058.com/85391