Linux文件系統管理:
Linux文件系統: ext2, ext3, ext4, xfs, btrfs, reiserfs, jfs, swap
swap: 交換分區
光盤:iso9660
Windows:fat32, ntfs
Unix: FFS, UFS, JFS2
網絡文件系統:NFS, CIFS
集群文件系統:GFS2, OCFS2
分布式文件系統:ceph,
moosefs, mogilefs, GlusterFS, Lustre
根據其是否支持"journal"功能:
日志型文件系統: ext3, ext4, xfs, ...
非日志型文件系統: ext2, vfat
文件系統的組成部分:
內核中的模塊:ext4, xfs, vfat
用戶空間的管理工具:mkfs.ext4, mkfs.xfs, mkfs.vfat
Linux的虛擬文件系統:VFS
支持的文件系統
[root@slave Desktop]# cat /proc/filesystems
nodev sysfs
nodev rootfs
nodev bdev
nodev proc
nodev cgroup
nodev cpuset
nodev tmpfs
nodev devtmpfs
nodev binfmt_misc
nodev debugfs
nodev securityfs
nodev sockfs
nodev usbfs
nodev pipefs
nodev anon_inodefs
nodev inotifyfs
nodev devpts
nodev ramfs
nodev hugetlbfs
iso9660
nodev pstore
nodev mqueue
ext4
nodev vmhgfs
nodev fuse
fuseblk
nodev fusectl
[root@slave Desktop]# lsmod
Module Size Used by
lp 9242 0
8021q 25527 0
garp 7152 1 8021q
stp 2218 1 garp
llc 5578 2 garp,stp
ip6t_REJECT 4628 2
nf_conntrack_ipv6 8337 3
nf_defrag_ipv6 27236 1 nf_conntrack_ipv6
xt_state 1492 3
nf_conntrack 80390 2 nf_conntrack_ipv6,xt_state
ip6table_filter 2889 1
ip6_tables 18732 1 ip6table_filter
ipv6 334932 143 ip6t_REJECT,nf_conntrack_ipv6,nf_defrag_ipv6
fuse 79956 4
vmhgfs 49440 0
vsock 46726 0
uinput 8120 0
microcode 112653 0
ppdev 8537 0
vmware_balloon 7199 0
snd_ens1371 21587 2
snd_rawmidi 23017 1 snd_ens1371
snd_ac97_codec 124967 1 snd_ens1371
ac97_bus 1452 1 snd_ac97_codec
snd_seq 55727 0
snd_seq_device 6500 2 snd_rawmidi,snd_seq
snd_pcm 87790 2 snd_ens1371,snd_ac97_codec
snd_timer 22443 2 snd_seq,snd_pcm
snd 70953 11 snd_ens1371,snd_rawmidi,snd_ac97_codec,snd_seq,snd_seq_device,snd_pcm,snd_timer
soundcore 7958 1 snd
snd_page_alloc 8856 1 snd_pcm
parport_pc 22658 1
parport 36209 3 lp,ppdev,parport_pc
e1000 160643 0
sg 29318 0
vmci 74263 2 vmhgfs,vsock
i2c_piix4 11776 0
i2c_core 29964 1 i2c_piix4
shpchp 29130 0
ext4 378476 2
jbd2 93427 1 ext4
mbcache 8193 1 ext4
sd_mod 36998 4
crc_t10dif 1305 1 sd_mod
sr_mod 15049 0
cdrom 39085 1 sr_mod
mptspi 16411 3
mptscsih 36636 1 mptspi
mptbase 93615 2 mptspi,mptscsih
scsi_transport_spi 25447 1 mptspi
pata_acpi 3701 0
ata_generic 3837 0
ata_piix 24409 0
dm_mirror 14384 0
dm_region_hash 12085 1 dm_mirror
dm_log 9930 2 dm_mirror,dm_region_hash
dm_mod 95622 2 dm_mirror,dm_log
創建文件系統:
mkfs命令:
(1) # mkfs.FS_TYPE /dev/DEVICE
ext4
xfs
btrfs
vfat
(2) # mkfs -t FS_TYPE /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的大小;
-N #:為數據空間創建個多少個inode;
-m #: 為管理人員預留的空間占據的百分比;
-O FEATURE[,...]:啟用指定特性
-O ^FEATURE:關閉指定特性
mkswap:創建交換分區
mkswap [options] device
-L 'LABEL'
前提:調整其分區的ID為82;
[root@slave Desktop]# mkswap /dev/sda1
/dev/sda1: Device or resource busy
[root@slave Desktop]# mkswap /dev/sda2
/dev/sda2: Device or resource busy
[root@slave Desktop]# mkswap /dev/sda3
/dev/sda3: Device or resource busy
[root@slave Desktop]# mkfs.ext4 /dev/sda2
mke2fs 1.41.12 (17-May-2010)
/dev/sda2 is mounted; will not make a filesystem here!
[root@slave Desktop]# mkfs.ext4 /dev/sda1
mke2fs 1.41.12 (17-May-2010)
/dev/sda1 is mounted; will not make a filesystem here!
[root@slave Desktop]#
[root@slave Desktop]# blk
blkdeactivate blkid blkparse blktrace
blkdiscard blkiomon blkrawverify
[root@slave Desktop]# blkid /dev/sda1
/dev/sda1: UUID="d2624a7b-cd31-4051-8f0e-2f08d03887b0" TYPE="ext4"
[root@slave Desktop]# blkid /dev/sda2
/dev/sda2: UUID="6f424695-992e-43fb-845d-25f6cba558b6" TYPE="ext4"
[root@slave Desktop]# blkid /dev/sda3
/dev/sda3: UUID="3fab6886-6f9a-484e-bc98-000f0f29e57c" TYPE="swap"
[root@slave Desktop]# mkfs.ext4 -l MYDATA /dev/sda3
mke2fs 1.41.12 (17-May-2010)
/dev/sda3 is mounted; will not make a filesystem here!
其它常用工具:
blkid:塊設備屬性信息查看
blkid [OPTION]... [DEVICE]
-U UUID: 根據指定的UUID來查找對應的設備
-L LABEL:根據指定的LABEL來查找對應的設備
e2label:管理ext系列文件系統的LABEL
# e2label DEVICE [LABEL]
tune2fs:重新設定ext系列文件系統可調整參數的值
-l:查看指定文件系統超級塊信息;super block
-L 'LABEL':修改卷標
-m #:修預留給管理員的空間百分比
-j: 將ext2升級為ext3
-O: 文件系統屬性啟用或禁用
-o: 調整文件系統的默認掛載選項
-U UUID: 修改UUID號;
dumpe2fs:
-h:查看超級塊信息
文件系統檢測:
fsck: File System CheCk
fsck.FS_TYPE
fsck -t FS_TYPE
-a: 自動修復錯誤
-r: 交互式修復錯誤
Note: FS_TYPE一定要與分區上已經文件類型相同;
e2fsck:ext系列文件專用的檢測修復工具
-y:自動回答為yes;
-f:強制修復;
回顧:
磁盤接口類型、磁盤分區、fdisk、mkfs、mke2fs, tune2fs, blkid, dumpe2fs, e2label
vfs: xfs, ext{2|3|4}, btrfs
文件系統管理:
將額外文件系統與根文件系統某現存的目錄建立起關聯關系,進而使得此目錄做為其它文件訪問入口的行為稱之為掛載;
解除此關聯關系的過程稱之為卸載;
把設備關聯掛載點:Mount Point
mount
卸載時:可使用設備,也可以使用掛載點
umount
注意:掛載點下原有文件在掛載完成後會被臨時隱藏;
掛載方法:mount DEVICE MOUNT_POINT
mount:通過查看/etc/mtab文件顯示當前系統已掛載的所有設備
mount [-fnrsvw] [-t vfstype] [-o options] device dir
device:指明要掛載的設備;
(1) 設備文件:例如/dev/sda5
(2) 卷標:-L 'LABEL', 例如 -L 'MYDATA'
(3) UUID, -U 'UUID':例如 -U '0c50523c-43f1-45e7-85c0-a126711d406e'
(4) 偽文件系統名稱:proc, sysfs, devtmpfs, configfs
dir:掛載點
事先存在;建議使用空目錄;
進程正在使用中的設備無法被卸載;
常用命令選項:
-t vsftype:指定要掛載的設備上的文件系統類型;
-r: readonly,只讀掛載;
-w: read and write, 讀寫掛載;
-n: 不更新/etc/mtab;
-a:自動掛載所有支持自動掛載的設備;(定義在了/etc/fstab文件中,且掛載選項中有“自動掛載”功能)
-L 'LABEL': 以卷標指定掛載設備;
-U 'UUID': 以UUID指定要掛載的設備;
-B, --bind: 綁定目錄到另一個目錄上;
注意:查看內核追蹤到的已掛載的所有設備:cat /proc/mounts
-o options:(掛載文件系統的選項)
async:異步模式;
sync:同步模式;
atime/noatime:包含目錄和文件;
diratime/nodiratime:目錄的訪問時間戳
auto/noauto:是否支持自動掛載
exec/noexec:是否支持將文件系統上應用程序運行為進程
dev/nodev:是否支持在此文件系統上使用設備文件;
suid/nosuid:
remount:重新掛載
ro:
rw:
user/nouser:是否允許普通用戶掛載此設備
acl:啟用此文件系統上的acl功能
注意:上述選項可多個同時使用,彼此使用逗號分隔;
默認掛載選項:defaults
rw, suid, dev, exec, auto, nouser, and async
顯示所有掛載設備
[root@slave ~]# mount
/dev/sda2 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
vmware-vmblock on /var/run/vmblock-fuse type fuse.vmware-vmblock (rw,nosuid,nodev,default_permissions,allow_other)
gvfs-fuse-daemon on /root/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev)
[root@slave ~]# cat /proc/mounts
rootfs / rootfs rw 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
devtmpfs /dev devtmpfs rw,relatime,size=1558932k,nr_inodes=389733,mode=755 0 0
devpts /dev/pts devpts rw,relatime,gid=5,mode=620,ptmxmode=000 0 0
tmpfs /dev/shm tmpfs rw,relatime 0 0
/dev/sda2 / ext4 rw,relatime,barrier=1,data=ordered 0 0
/proc/bus/usb /proc/bus/usb usbfs rw,relatime 0 0
/dev/sda1 /boot ext4 rw,relatime,barrier=1,data=ordered 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw,relatime 0 0
vmware-vmblock /var/run/vmblock-fuse fuse.vmware-vmblock rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other 0 0
gvfs-fuse-daemon /root/.gvfs fuse.gvfs-fuse-daemon rw,nosuid,nodev,relatime,user_id=0,group_id=0 0 0
卸載命令:
# umount DEVICE
# umount MOUNT_POINT
查看正在訪問指定文件系統的進程:
# fuser -v MOUNT_POINT
終止所有在正訪問指定的文件系統的進程:
# fuser -km MOUNT_POINT
掛載交換分區:
啟用:swapon
swapon [OPTION]... [DEVICE]
-a:激活所有的交換分區;
-p PRIORITY:指定優先級;
禁用:swapoff [OPTION]... [DEVICE]
內存空間使用狀態:
free [OPTION]
-m: 以MB為單位
-g: 以GB為單位
[root@slave ~]# free -m
total used free shared buffers cached
Mem: 3066 523 2543 2 70 181
-/+ buffers/cache: 272 2794
Swap: 1983 0 1983
文件系統空間占用等信息的查看工具:
df:
-h: human-readable
-i:inodes instead of blocks
-P: 以Posix兼容的格式輸出;
查看某目錄總體空間占用狀態:
du:
du [OPTION]... DIR
-h: human-readable
-s: summary
命令總結:mount, umount, free, df, du, swapon, swapoff, fuser
本文出自 “梁小明的博客” 博客,請務必保留此出處http://7038006.blog.51cto.com/7028006/1829041