标签:linux文件系统
磁盘没有文件系统 对其读取是以二进制读取文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的 系统。具体地说,它负责为用户建立文件,存入、读出、修 改、转储文件,控制文件的存取,安全控制,日志,压缩, 加密等 对磁盘进行格式化
显示支持的文件系统: ls /lib/modules/`uname –r`/kernel/fs
根据其是否支持"journal"功能:journal 日志
日志型文件系统: ext3, ext4, xfs, ...
非日志型文件系统: ext2, vfat
文件系统的组成部分:
内核中的模块:ext4, xfs, vfat
用户空间的管理工具:mkfs.ext4, mkfs.xfs,mkfs.vfat
1.创建文件系统
mkfs命令:
v(1) mkfs.FS_TYPE /dev/DEVICE
ext4
xfs
btrfs
vfat
(2) mkfs -t FS_TYPE /dev/DEVICE -L 'LABEL': 指明文件类型并设定卷标
-b {1024|2048|4096} 块大小 mkfs.xfs -b 1024 /dev/sdc 里面文件至少占1024
块大小为磁盘扇区(512字节) 的整数倍
2.创建ext文件系统
mke2fs:ext系列文件系统专用管理工具
-t {ext2|ext3|ext4}
-b {1024|2048|4096} 创建后无法更改
-L 'LABEL' 卷标 一般为 挂载目录 mkdir /mnt/ss4 mount /dev/sdd1 /mnt/ss4
-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:关闭指定特性
3.ext系列文件系统参数调整 不能调整block大小
tune2fs:重新设定ext系列文件系统可调整参数的值
-l:查看指定文件系统超级块信息;super block
-L 'LABEL':修改卷标
tune2fs /dev/sdd1 -L /mnt/ss4
-m #:修预留给管理员的空间百分比
-j: 将ext2升级为ext3
-O: 文件系统属性启用或禁用, –O ^has_journal
-o: 调整文件系统的默认挂载选项,–o ^acl
-U UUID: 修改UUID号
4.文件系统标签
blkid:块设备属性信息查看
vblkid [OPTION]... [DEVICE]
-U UUID: 根据指定的UUID来查找对应的设备
-L LABEL:根据指定的LABEL来查找对应的设备
ve2label:管理ext系列文件系统的LABEL
e2label DEVICE [LABEL]
vfindfs :查找分区
findfs [options] LABEL=<label>
findfs LABEL=/mnt/ss4
findfs [options] UUID=<uuid>
findfs UUID=9e141ad2-0d2f-4668-963e-bf2c4d01c4d2
[root@centos7 fs]$mkfs.ext4 /dev/sdd1
[root@centos7 fs]$blkid
/dev/sdd1: UUID="3e7988c1-6f1a-4fe8-b6a2-68cad8553fdc" TYPE="ext4"
[root@centos7 fs]$mkfs -t ext3 /dev/sdd1
/dev/sdd1: UUID="afc398dd-2c59-4c7b-b1b4-3d42d46a85f6" SEC_TYPE="ext2" TYPE="ext3"
[root@centos7 fs]$tune2fs -l /dev/sdd1
(默认特性)Filesystem features: has_journal ext_attr resize_inode dir_index filetype sparse_super large_file
[root@centos7 fs]$tune2fs -O ^has_journal /dev/sdd1
[root@centos7 fs]$blkid
/dev/sdd1: UUID="afc398dd-2c59-4c7b-b1b4-3d42d46a85f6" TYPE="ext2" ex3与ex2多了日志功能
5.文件系统检测和修复
常发生于死机或者非正常关机之后
挂载为文件系统标记为“no clean”
v 注意:一定不要在挂载状态下修复
vfsck: File System Check fsck.FS_TYPE fsck -t FS_TYPE
-p: 自动修复错误
-r: 交互式修复错误 FS_TYPE一定要与分区上已经文件类型相同
ve2fsck:ext系列文件专用的检测修复工具
-y:自动回答为yes
-f:强制修复
注:fsck 扫描文件系统时一定要在单用户模式、修复模式或把设备umount后进行。
文件系统的修复 顶多修复的是文件系统的元数据 并不能修复其内容
dumpe2fs DEVICE: 查看文件系统详细信息
块分组管理,32768块 一组
-h:查看超级块信息,不显示分组信息
Primary superblock at 0主要超块0
Superblock backups stored on blocks: 备份超级块
[root@centos7 ~]$dumpe2fs /dev/sdd1 | grep -i "superblock"
dumpe2fs 1.42.9 (28-Dec-2013)
Primary superblock at 0, Group descriptors at 1-1
Backup superblock at 32768, Group descriptors at 32769-32769
Backup superblock at 98304, Group descriptors at 98305-98305
Backup superblock at 163840, Group descriptors at 163841-163841
Backup superblock at 229376, Group descriptors at 229377-229377
Backup superblock at 294912, Group descriptors at 294913-294913
[root@centos7 ~]$dd if=/dev/zero of=/dev/sdd1 bs=1M count=1 破坏sdd1 主要超快0 (Reserved GDT blocks at 2-256) 256x4(块大小)=1M 全局描述符表GDT损坏
[root@centos7 ~]$dumpe2fs /dev/sdd1
dumpe2fs 1.42.9 (28-Dec-2013)
dumpe2fs: Bad magic number in super-block while trying to open /dev/sdd1
Couldn't find valid filesystem superblock.
[root@centos7 ~]$fsck /dev/sdd1 未挂载状态下修复
[root@centos7 ~]$dumpe2fs /dev/sdd1 | grep -i "superblock"
Backup superblock at 163840, Group descriptors at 163841-163841
6.用mount命令挂载文件系统
挂载:将额外文件系统与根文件系统某现存的目录建立起关联 关系,进而使得此目录做为其它文件访问入口的行为,无文件系统无法挂载
v 挂载点下原有文件在挂载完成后会被临时隐藏
v 挂载点目录一般为空
v 卸载时:可使用设备, 也可以使用挂载点 umount 但当挂载设备被访问时,不能取消该设备挂载
多个设备分区不允许同1个挂载点
1个设备分区可以多个挂载点
mount [-fnrsvw] [-t vfstype] [-o options] device dir
-n: 不更新/etc/mtab,mount不可见 cat /proc/mounts可查看
-B, --bind: 绑定目录到另一个目录上
给文件创建文件系统
[root@centos6 ~]#dd if=/dev/zero of=/app/cantest bs=1M count=100 文件
[root@centos6 ~]mke2fs -t ext4 /app/cantest
[root@centos6 ~]#blkid /app/cantest 在centos6中 cantest为文件 查看属性需要跟详细路径
/app/cantest: UUID="50955518-b925-4b14-b127-7b13d671ca62" TYPE="ext4"
对文件挂载目录
[root@centos6 ~]#mkdir one
[root@centos6 ~]#mount /app/file one
mount: /app/file is not a block device (maybe try `-o loop'?) 不是块设备不能定义block大小
[root@centos6 ~]#mount -o loop /app/file one 对文件进行挂载 需要使用loop设备进行挂载 ls /dev/loop*
[root@centos6 ~]#mount
/app/file on /root/one type ext4 (rw,loop=/dev/loop0)
在centos6中 /dev/loop*设备不够 可手动创建
[root@centos6 ~]#ll /dev/loop*
brw-rw----. 1 root disk 7, 7 Aug 1 21:14 /dev/loop7
[root@centos6 ~]#mknod /dev/loop8 b 7 8
[root@centos6 ~]#cp /app/file{,1}
[root@centos6 ~]#blkid /app/file{,1}
/app/file: UUID="add5eca5-be19-4603-bd20-ba40f28017a0" TYPE="ext4"
/app/file1: UUID="add5eca5-be19-4603-bd20-ba40f28017a0" TYPE="ext4" 复制保留文件系统特性
目录挂载目录
[root@centos6 ~]#mount -B /etc /app
[root@centos6 ~]#ls /app
abrt drirc latrace.conf pinforc screenrc
acpi enscript.cfg latrace.d pkcs11 securetty
[root@centos6 ~]#ls /etc
abrt drirc latrace.conf pinforc screenrc
acpi enscript.cfg latrace.d pkcs11 securetty
像文件的硬链接 但实现了跨分区
mount常用命令选项
-o options:(挂载文件系统的选项),多个选项使用逗号分开
atime/noatime:包含目录和文件 不刷新访问时间 适用于web服务器
[root@centos6 ~]#mount -B -o noatime /etc one one访问/etc文件目录 不刷新访问时间
diratime/nodiratime:目录的访问时间戳
suid/nosuid:不否支持suid和sgid权限
remount:重新挂载 不用取消在挂载 mount -o remount MOUNT_POINT|device
[root@centos6 ~]#mount /mnt/cdrom /mnt/sdd2
挂载后重挂载
[root@centos6 ~]#umount /mnt/sdd2
[root@centos6 ~]#mount -o dev /mnt/cdrom /mnt/sdd2
等同于
[root@centos6 ~]#mount -o remount,dev /mnt/sdd2|mnt/cdrom
defaults(默认挂载选项):相当于rw, suid, dev, exec, auto, nouser, async
v 查看正在访问指定文件系统的进程
lsof 查看那个进程,那个用户打开了某个文件,目录等信息。
lsof MOUNT_POINT
fuser -v MOUNT_POINT
v 终止所有在正访问指定的文件系统的进程 fuser -km MOUNT_POINT
v 取消挂载 umount DEVICE
umount MOUNT_POINT
查看挂载情况
findmnt MOUNT_POINT|device
echo $?
7.挂载点和/etc/fstab
v 配置文件系统体系
cat /etc/fstab
v 被mount、fsck和其它程序使用
v 系统重启时保留文件系统体系
v 可以在设备栏使用文件系统卷标
v 使用mount -a 命令挂载/etc/fstab中的所有文件系统带 defaults(默认挂载选项)立即生效 试用于一般挂载 不适合文件 目录 swap 要 使用mount -o remount /dev/sdd 重挂立即生效
设备名、卷标 、UUID都可以描述设备 由于设备名位置可能发生变化以及卷标可能重复性 ,在设备的配置文 件中描述设备最好用UUID 文件系统的通用唯一标识符UUID
处理交换文件和分区
v 交换分区是系统RAM的补充 v不能存放数据 直接进行数据交换
基本设置包括:
? 创建交换分区或者文件
? 使用mkswap写入特殊签名
? 在/etc/fstab文件中添加适当的条目
? 使用swapon -a 激活交换空间
挂载交换分区
指明优先级swapon -p PRIORITY:指定优先级 /etc/fstab:pri=value
使用文件作为交换分区
--生成文件 大小1G
[root@centos7 ~]$dd if=/dev/zero of=swapfile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 29.1077 s, 36.9 MB/s
--将生成的文件格式化成交换分区:
[root@centos7 ~]$mkswap swapfile
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=863bfe20-417e-4905-af91-603e2a1d48f9
--启动swapfile分区 并查看状态
[root@centos7 ~]$swapon swapfile
swapon: /root/swapfile: insecure permissions 0644, 0600 suggested. 建议修改权限为0600
--重启生效写入/etc/fstab
echo "UUID=863bfe20-417e-4905-af91-603e2a1d48f9 swap swap defaults 0 0">>/etc/fstab
删除交换分区文件
(1)回收交换文件
swapoff ~/swapfile
(2 )去除/etc/fstab中的该行
(3)删除该文件
rm ~/swapfile
使用磁盘作为交换分区
--创建sdc3 分区作为swap分区
[root@centos7 ~]$fdisk /dev/sdc
--修改为swap分区
Command (m for help): t 指定挂载选项
Partition number (1-3, default 3): 3
Hex code (type L to list all codes): 82 centos7为8200
--格式化分区使其生效 相对于构建文件系统
[root@centos7 ~]$mkswap /dev/sdc3
Setting up swapspace version 1, size = 10484732 KiB
no label, UUID=b95483f9-351d-4e26-96fc-06055a19f321
[root@centos7 ~]$swapon -s
Filename Type Size Used Priority 优先级
/dev/sda3 partition 1952764 57132 -1
/root/swapfile file 1048572 0 -2
/dev/sdc3 partition 10484732 0 -3
--在/etc/fstab下修改配置文件 并指明优先级
[root@centos7 ~]swapon -p 100 /dev/sdc3
--查看swap分区使用状况
[root@centos7 ~]$free -m
total used free shared buff/cache available
Mem: 1824 575 75 16 1174 1017
Swap: 13169 55 13114
--关机交换分区
[root@centos7 ~]$swapoff /dev/sdc3
swap能应物理内存的使用情况 当free命令中swap使用率较高时,说明内存不足,须加内存
光盘挂载
mount /dev/cdrom MOUNT_POINT
/dev/cdrom(挂载盘) 通用 软连接于sr0
创建ISO文件 cp /dev/cdrom /root/centos7.iso
mkisofs -r -o /root/etc.iso /etc 针对etc 打包成root下etc.iso文件
设置光盘挂载
mount /dev/cdrom /mnt/cdrom
开启自动挂载
在 7中 systemctl start autofs 没有此服务 安装 autofs包 systemctl enable autofs 开机自启
6: service autofs start
#cd /misc/cd
写入/etc/fstab配置文件
练习:
1、创建一个2G的文件系统,块大小为2048byte,预留1%可用空间,文件系统ext4,卷标为TEST,要求此分区开机后自动挂载至/test目录,且默认有acl挂载选项
mkfs.ext4 -b 2048 -m 1 -O acl /dev/sdb1 -L TEST -L TEST 需跟在后面
mount /dev/sdb1 /test
/dev/sdc2 /test ext4 defaults,acl 0 0
2、写一个脚本,完成如下功能:
(1) 列出当前系统识别到的所有磁盘设备
(2) 如磁盘数量为1,则显示其空间使用信息
否则,则显示最后一个磁盘上的空间使用信息
3.实现CentOS-6.9-x86_64-bin-DVD1 CentOS-6.9-x86_64-bin-DVD2 两张光盘合为一张iso镜像文件 并设置为yum源
cp centos6-DVD1
[root@centos6 ~]#mkdir centos6
[root@centos6 ~]#cp -r /media/CentOS_6.9_Final/* centos6
[root@centos6 ~]#ls centos6
CentOS_BuildTag isolinux RPM-GPG-KEY-CentOS-Debug-6
EFI Packages RPM-GPG-KEY-CentOS-Security-6
EULA RELEASE-NOTES-en-US.html RPM-GPG-KEY-CentOS-Testing-6
GPL repodata TRANS.TBL
images RPM-GPG-KEY-CentOS-6
挂载centos6-DVD2 dvd2与dvd1就Packages下文件不同
[root@centos6 ~]#cp -r /media/CentOS_6.9_Final/Packages/* centos6
[root@centos6 ~]#./mkdvdiso.sh centos6 /app/CentOS-6-x86_64-Everything.iso
Error: /usr/bin/implantisomd5 Not Found!
Please install isomd5sum and try again.
[root@centos6 ~]#yum install isomd5sum
[root@centos6 ~]#./mkdvdiso.sh centos6 /app/CentOS-6-x86_64-Everything.iso
标签:linux文件系统
原文地址:http://blog.51cto.com/13157015/2044483