Linux文件系統:ext(2,3,4), xfs, reiserfs(suse),
VFS虛擬文件系統node
硬連接和符號連接:windows
設備文件:
b
c異步
mknod [option] NAME TYPE [MAJOR MINOR]
-m modeasync
/dev/null是無硬件設備與之對應的: 軟件模擬的設備ide
/dev/sd[a-z]#
1-4:
5+: 邏輯分區模塊化
IDE:/dev/hd工具
分區:根據柱面來劃分 cylinderui
fdisk, sfdisk, partedspa
建立文件系統:
mkfs : make file system
mkfs - build a Linux file system
mkfs [-V] [-t fstype] [fs-options] filesys [blocks]
-t FSTYPE [DEVICE]
-t fstype
Specifies the type of file system to be built. If not specified, the default file system type
(currently ext2) is used.
mkfs -t FSTYPE 自動映射爲 mkfs.FSTYPE
mkfs -t ext4 = mkfs.ext4命令行
注意:CentOS
文件系統必須在內核中支持才行,
Linux內核是模塊化的,這些模塊支持動態裝載和卸載;
文件系統可能會被直接打包進內核,也能夠被編譯成內核模塊;
# lsmod
lsmod - program to show the status of modules in the Linux Kernel
若是指望將某分區格式化成某特定文件系統,一般須要一個與之對應的在用戶空間
可以使用命令行工具來實現;
# yum -y install xfsprogs
文件系統的日誌功能:Journal
ext2: 無日誌功能
ext3, ext4, xfs: 日誌文件系統
[root@localhost ~]# mkfs.xfs /dev/vg_lvm/test
meta-data=/dev/vg_lvm/test isize=256 agcount=4, agsize=327680 blks
= sectsz=512 attr=2, projid32bit=0
data = bsize=4096 blocks=1310720, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]# blkid /dev/vg_lvm/test
/dev/vg_lvm/test: UUID="5579e5eb-566b-4fa1-8869-38b37a09920c" TYPE="xfs"
mke2fs:
mke2fs - create an ext2/ext3/ext4 filesystem
-t {ext2|ext3|ext4}:指定文件系統 不寫是ext2的文件系統
-b {1024|2048|4096}:指定塊大小
-L LABEL: 打標
-j: 至關於 -t ext3
-i #: 每多少字節給建立一個inode,此字節數不該該小於塊大小
-N #: 直接指定可用的inode數;
-m #: 指定預留空間佔整個分區空間的百分比;默認爲5;
-O:指定分區特性
blkid: 查看指定塊設備的信息
[root@localhost ~]# mke2fs -t ext3 -L TEST /dev/vg_lvm/test
mke2fs 1.41.12 (17-May-2010)
Filesystem label=TEST
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1342177280
40 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
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 31 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@localhost ~]# blkid /dev/vg_lvm/test
/dev/vg_lvm/test: LABEL="TEST" UUID="5184aef4-aff9-422d-8efa-e68efd2725fc" SEC_TYPE="ext2" TYPE="ext3"
e2label:查看或設定卷標
e2label - Change the label on an ext2/ext3/ext4 filesystem
e2label device [ new-label ]
[root@localhost ~]# e2label /dev/vg_lvm/test
TEST
查看超級塊信息:
# tune2fs -l DEVICE
[root@localhost ~]# tune2fs -l /dev/vg_lvm/test
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name: TEST
Last mounted on: <not available>
Filesystem UUID: 5184aef4-aff9-422d-8efa-e68efd2725fc
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype sparse_super large_file
Filesystem flags: signed_directory_hash
Default mount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 327680
Block count: 1310720
Reserved block count: 65536
Free blocks: 1254785
Free inodes: 327669
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 319
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Filesystem created: Tue Dec 2 09:27:01 2014
Last mount time: n/a
Last write time: Tue Dec 2 09:27:02 2014
Mount count: 0
Maximum mount count: 31
Last checked: Tue Dec 2 09:27:01 2014
Check interval: 15552000 (6 months)
Next check after: Sun May 31 09:27:01 2015
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
Journal inode: 8
Default directory hash: half_md4
Directory Hash Seed: 31bb1af6-f45d-4900-a205-d38dd742de29
Journal backup: inode blocks
# dumpe2fs -h DEVICE 此時顯示是不包括塊組信息,去除-h則會顯示塊組信息
修改分區屬性:tune2fs
塊大小在格式化的時候已經決定了,所以塊大小沒法調整;
-j: ext2 --> ext3
-L LABEL:修改卷標
-m #: 修改預留空間百分比;
-O [^]FEATURE: 不加^啓用指定特性,特性前加^,表示關閉此種特性
-o [^]mount-options: 開啓或關閉指定的掛載選項
因進程意外停止或系統崩潰等狀況導入寫入操做非正常停止時,可能會致使文件損壞;此
時,應該修復文件系統:
注意:離線修復 先卸載,在修復
fsck
fsck - check and repair a Linux file system
-t fstype
-a: 自動修復錯誤
-r: 交互式修復錯誤
fsck [-sAVRTMNP] [-C [fd]] [-t fstype] [filesys...] [--] [fs-specific-options]
e2fsck: 專用於修改ext系列文件系統
e2fsck - check a Linux ext2/ext3/ext4 file system
-y: 對問題自動回答爲yes
-f: 強制進行檢測
-f Force checking even if the file system seems clean.
補充:windows不能識別Linux的文件系統
U盤的文件系統FAT32
# mkfs -t vfat
交換分區:swap
緩解物理內存資源不夠用的狀況;
建立交換分區:
mkswap [-L LABEL] DEVICE
文件系統掛載:默認只有管理員纔有權限
將額外的分區與根文件系統上的某目錄創建關聯關係的過程;
目錄中的原有文件會被隱藏
掛載點:另外一個文件系統的訪問入口
掛載: mount DEVICE MOUNT_POINT
固定掛載點:/mnt, /media
mount - mount a filesystem
mount [option]... [-t fstype] [-o option] 設備 掛載點
掛載點要求:
一、事先存在;
二、使用空閒目錄;
不跟選項時,顯示已掛載的設備
經常使用的掛載選項[option]:
-t fstype:指定文件系統類型
-r: readonly, 只讀掛載
-w: read and write, 讀寫掛載
-L LABEL:以卷標方式指定設備, mount -L MYDATA 掛載點
-U UUID: 以UUID的方式指定設備,mount UUID='uuid' 掛載點, mount -U uuid 掛載點
-a: 自動掛載全部(/etc/fstab文件中定義的)的支持自動掛載設備
-n: 掛載時,不更新/etc/mtab文件
-o option:
async:異步I/O,數據寫操做先於內存完成,然後再根據某種策略同步至持久設備中
sync: 同步I/O,
atime/noatime: 文件和目錄被訪問時是更新最近一次的訪問時間戳
auto/noauto:設備是否支持mount的-a選項自動掛載
diratime/nodiratime: 目錄被訪問時是更新最近一次的訪問時間戳
dev/nodev: 是否支持在此設備上使用設備;
exec/noexec: 是否容許執行此設備上的二進制程序文件
suid/nosuid: 是否支持在此設備的文件上使用suid
remount: 從新掛載,一般用於不卸載的狀況下從新指定掛載選項
ro: 只讀
rw: 讀寫
user/nouser: 是否容許普通掛載此文件設備
acl: 在此設備是支持使用facl,默認不支持;
例如:以指定掛載後支持acl爲例:
方法1:
mount -o acl DEVICE MOUNT_POINT
方法2:
tune2fs -o acl DEVICE
爲設備設定默認掛載選項
mount DEVICE MOUNT_POINT
查看全部已經掛載的設備:
# mount
# cat /proc/mounts
# cat /etc/mtab 追蹤當前系統已經掛載的設備
卸載:掛載點沒有被進程訪問時方能夠卸載 ;
卸載:umount DEVICE
umount MOUNT_POINT
查看哪些進程正在訪問掛載的設備:
fuser -v 掛載點
停止正在此掛載點的進程: fuser -km 掛載點