一 Linux磁盤管理node
識別硬盤 /dev/sd#
標記不一樣的硬盤設備 /dev/sd[a-]
標記同一設備上的不一樣分區 /dev/sd[a-z][1-]
設備文件 特殊文件
設備號
major,minor
major 設備類型
minor 同一類型下的不一樣設備
塊設備 標識爲b 隨機訪問設備
字符設備 標記爲c 線性設備
GPT
分區,分隔存儲空間爲多個小的空間,每一個空間可獨立使用文件系統
分區工具
fdisk
parted
sfdisk
fdisk 最多支持在一塊硬盤上的15個分區
fdisk -l
讓內核重讀磁盤分區表
partprobe [DEVICE ]
partx
partx -a -n 4:5 /dev/sda
kpartx
kpartx -af /dev/sdavim
fdisk -l fdisk /devsdb
命令(輸入 m 獲取幫助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分區號 (1-4,默認 1):
起始 扇區 (2048-41943039,默認爲 2048):
將使用默認值 2048
Last 扇區, +扇區 or +size{K,M,G} (2048-41943039,默認爲 41943039):+10G
分區 1 已設置爲 Linux 類型,大小設爲 10 GiBcentos
命令(輸入 m 獲取幫助):pbash
磁盤 /dev/sdb:21.5 GB, 21474836480 字節,41943040 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
磁盤標籤類型:dos
磁盤標識符:0x694b74e6app
設備 Boot Start End Blocks Id System
/dev/sdb1 2048 20973567 10485760 83 Linux
命令(輸入 m 獲取幫助):w
The partition table has been altered!異步
Calling ioctl() to re-read partition table.
正在同步磁盤。async
二 Linux 文件系統管理
mke2fs [OPTION] ....device
mke2fs - create an ext2/ext3/ext4 filesystem
-t {etx2|etx3|etx4}
-b {1024|2048|4096}
-L 'LABEL'
-j mke2fs -t ext3
-i # bytes-per-inode Specify the bytes/inode ratio
-N #
-m # reserved-blocks-percentage 預留磁盤空間佔據多大百分比的空間爲管理後期使用
-O FEATURE [] feature[,...] Create a filesystem with the given features (filesystem options) 開啓特性
-O ^FEATURE [] 關閉特性
man tune2fs
tune2fs -O [^]feature[,...]
ide
mke2fs -t ext4 -b 4096 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系統標籤=
OS type: Linux
塊大小=4096 (log=2)
分塊大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 2621440 blocks
131072 blocks (5.00%) reserved for the super user
第一個數據塊=0
Maximum filesystem blocks=2151677952
80 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632工具
Allocating group tables: 完成
正在寫入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成佈局
mke2fs -L 'test1' /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系統標籤=test1
OS type: Linux
塊大小=4096 (log=2)
分塊大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 2621440 blocks
131072 blocks (5.00%) reserved for the super user
第一個數據塊=0
Maximum filesystem blocks=2684354560
80 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Allocating group tables: 完成
正在寫入inode表: 完成
Writing superblocks and filesystem accounting information: 完成
blkid /dev/sdb1
/dev/sdb1: LABEL="test1" UUID="c39d7e87-cb61-43c9-94bf-cc0f12310787" TYPE="ext2"
當執行mke2fs 不帶-t ext4 參數時,默認文件系統爲ext2
mke2fs -t ext4 -b 4096 -L 'test1' /dev/sdb1
文件系統屬性查看及調整工具
e2label 管理卷標
e2label /dev/sda1 查看卷標
e2label /dev/sda1 LABEL 設定卷標
e2label /dev/sdb1
test1
e2label /dev/sdb1 test2 e2label /dev/sdb1
test2
tune2fs 顯示ext系列文件系統的屬性或調整其屬性
-l 列表,顯示超級塊信息(顯示整個文件系統屬性及佈局等信息)
-L 卷標
-m # 調整預留給管理員的管理空間百分比
-j 將ext2 升級到 ext3
-O FEATURE 啓用或關閉屬性(^FEATURE 關閉特性)
-o 文件系統默認掛載選項的開啓或關閉
tune2fs -o acl /dev/sda1
dumpe2fs
-h 僅顯示超級塊信息
tune2fs -l /dev/sdb1
tune2fs 1.42.9 (28-Dec-2013)
Filesystem volume name: test2
Last mounted on: <not available>
Filesystem UUID: c39d7e87-cb61-43c9-94bf-cc0f12310787
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: ext_attr resize_inode dir_index filetype sparse_super large_file
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 655360
Block count: 2621440
Reserved block count: 131072
Free blocks: 2574545
Free inodes: 655349
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 639
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Filesystem created: Sun Sep 6 17:16:58 2015
Last mount time: n/a
Last write time: Sun Sep 6 17:18:08 2015
Mount count: 0
Maximum mount count: -1
Last checked: Sun Sep 6 17:16:58 2015
Check interval: 0 (<none>)
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Default directory hash: half_md4
Directory Hash Seed: a17cf0ef-10c9-47b6-8d41-d79d154d0b4d
blkid
文件系統檢測工具
blkid /dev/sdb1
/dev/sdb1: LABEL="test2" UUID="c39d7e87-cb61-43c9-94bf-cc0f12310787" TYPE="ext4"
fsck
fsck -t type
-a 自動修復錯誤
-r 交互式修復錯誤
-f 強制檢測
fsck.type
e2fsck
-y 自動回答 yes
-f 強制檢測
三 文件系統的掛載和使用
kernel-->rootfs(分區)
rootfs分區
bin sbin etc lib lib64 dev tmp proc sys
/sbin/init cenos6
/sbin/systemd cenos7
將額外文件系統與根文件系統與現存的目錄創建起關聯關係,進而使得此目錄作爲其它文件系統訪問入口的行爲,稱爲掛載
解除關係的過程 卸載
掛載點 mount print 設備掛載至目錄
掛載點在掛載以後,其內部原有的文件會被隱藏, 建義使用空目錄爲掛載點
掛載方法
mount 經過讀到 /etc/mtab 文件來赤示當前系統中全部已掛載的設備
mount -a 掛載/etc/fstab 文件中的全部支持的自動掛載的文件系統
mount [option] [-o options] DEVICE MOUNT_POINT
[options] 命令選項
[-o options] 掛載選項
DEVICE 要掛載的設備
1.設備文件 例 /dev/sda4
2.卷標 -L 'LABEL'
3.UUID -U 'UUID'
4. 僞文件系統
MOUNT_POINT 掛載點
經常使用選項
-t type 文件系統類型
-r 以只識方式掛載此文件系統
-w 以讀寫方式掛載
-n 每一個文件系統掛載時會自動更新/etc/mtab文件,-n禁用此功能
若是想查看掛載的全部文件系統 cat /proc/mounts
-a 自動掛載全部支持自動掛載的設備
-B 綁定目錄至另外一個目錄上
-o 掛載選項
async 異步模式
sync 同步模式
atime 更新訪問時間戳
noatime 不更新訪問時間戳
diratime 更新目錄訪問時間戳
nodiratime 不更新目錄訪問時間戳
auto 自動掛載
noaut 不自動掛載
exec 容許執行此文件系統上應用程序
noexec 不容許執行此文件系統上應用程序
dev 支持在此設備上使用設備文件
nodev 不支持在此設備上使用設備文件
suid
nosuid
remount 從新掛載
ro
rw
user 容許普通用戶掛載此高備
nouser 不容許普通用戶掛載此高備
acl
unmount 取消掛載
fuser 查看目錄下 有哪些在使用
-v 查看掛載點正在使用的進程
-km 強制結束正在使用的進程
mount /dev/sdb1 /mydata mount -L 'test2' /mydata mount -U 'c39d7e87-cb61-43c9-94bf-cc0f12310787' /mydata umount /mydata
交換分區
free -m 查看物理內存和交換分區的使用狀態
-m MB
-g GB
mkswap 建立交換分區
mkswap [option] DEVICE
-L 'LABEL'
swapon DEVICE 激活交換分區
-a 激活所有交換分區
-p PRIORITY 設定交換分區的優先級
swapoff DEVICE 關閉交換分區
-a 關閉所有交換分區
文件系統等空間佔用信息的查看工具
df disk free
-h, --human-readable
-i, --inodes
-P, --portability use the POSIX output format
du disk usage
-s, --summarize
-h, --human-readable
free -m
total used free shared buff/cache available
Mem: 1826 602 715 9 509 1029
Swap: 2047 0 2047
mkswap /dev/sdb2
正在設置交換空間版本 1,大小 = 2097148 KiB
無標籤,UUID=3a31785b-303c-4506-a7a3-d902c3024204
free -m
total used free shared buff/cache available
Mem: 1826 602 715 9 509 1029
Swap: 2047 0 2047
swapon /dev/sdb2
free -m
total used free shared buff/cache available
Mem: 1826 603 714 9 509 1028
Swap: 4095 0 4095
swapoff /dev/sdb2
free -m
total used free shared buff/cache available
Mem: 1826 602 714 9 509 1029
Swap: 2047 0 2047
文件系統掛載 相關的配置文件
/etc/fstab 每行定義一個文件系統
cat /etc/fstab
/dev/mapper/centos-root / xfs defaults 0 0 UUID=51d6b7a7-29f9-4a59-af18-3a746ca553e4 /boot xfs defaults 0 0 /dev/mapper/centos-home /home xfs defaults 0 0 /dev/mapper/centos-swap swap swap defaults 0 0
要掛載的設備或文件系統 掛載點 文件系類型 掛載選項 轉儲頻率 自檢次序
要掛載的設備或文件系統 設備文件 LABEL= UUID= 僞言語件系統
掛載選項 defaults
轉儲頻率 備份的頻率
0 不轉儲
1 天天轉儲
2 每隔一天轉儲
自檢次序
0 不自檢
1 首先自檢,一般只有/ 根才爲1
2
vim /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed Sep 2 17:59:33 2015
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0 UUID=c7be76f0-7549-4b55-987b-f02072487405 /boot xfs defaults 0 0 /dev/mapper/centos-home /home xfs defaults 0 0 /dev/mapper/centos-swap swap swap defaults 0 0 /dev/sdb1 /mydata ext4 defaults 0 0
四 文件系統的連接文件
硬連接 兩個路徑指向同一個inode
不能對目錄進行建立
不能跨分區
指向同一個inode 的多個不一樣路徑,建立文件的硬連接會 增長inode 的引用記數,刪除硬 連接僅是刪除其中一個訪問路徑,直到所有路徑刪除 ,纔會真正刪除
符號連接 連接文件的數據指向另外一個文件路徑
能夠對目錄進行
能夠跨分區
指向的是另外一個文件路徑,而非inode
文件大小是引用的大小,不是源文件大小
對文件建立符號連接不會增長其引用記數,刪除源文件,符號連接沒法使用
ln
ln fstabe fstab.h 硬連接
ln -s fstabe fstab.s 符號連接
-v 顯示詳細建立過程
練習
三、建立一個10G的文件系統,類型爲ext4,要求開機可自動掛載至/mydata目錄
fdisk /devsdb
n
p
1
2048
+10G
w
mke2fs -t ext4 -b 4096 -L 'test2' /dev/sdb1
vim /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed Sep 2 17:59:33 2015
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0 UUID=c7be76f0-7549-4b55-987b-f02072487405 /boot xfs defaults 0 0 /dev/mapper/centos-home /home xfs defaults 0 0 /dev/mapper/centos-swap swap swap defaults 0 0 /dev/sdb1 /mydata ext4 defaults 0 0