歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux技術

Linux文件系統管理

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

Copyright © Linux教程網 All Rights Reserved