概述:
本篇为上篇博客---创建文件系统,(格式化)的后续内容,将陆续为大家介绍用于系统检测的工具、blkid命令,及如何创建swap文件系统,最重要的是文件系统创建后如何使用,挂载的内容!
==============================================================================
4.用于实现系统检测的工具:fsck,e2fsck
★为什么要进行文件系统检测:
因进程意外中止或系统崩溃等原因导致操作非正常终止时,可能会造成文件损坏;此时应该检测并修复文件系统,建议离线进行;
常发生于死机或者非正常关机之后;
挂载为文件系统标记为“dirty”
★e2fsck:ext系列文件专用的检测修复工具
☉语法:
e2fsck [OPTIONS] device
☉选项:
-y:对所有问题自动回答为yes;
-f:即使文件系统处于clean状态,也要强制进行检测;
★fsck 命令
☉作用:
check and repair a Linux file system
☉语法:
fsck.FS_TYPE
☉选项:
-t FS_TYPE:指明文件系统类型 如:fsck -t ext4=fsck.ext4
-a:自动修复错误;
-r:交互式修复错误
注意:
FS_TYPE 一定要与分区上已知文件类型相同;
演示:
1.e2fsck 命令
[root@CentOS6 ~]# e2fsck -f /dev/sda3 e2fsck 1.41.12 (17-May-2010) Pass 1: Checking inodes, blocks, and sizes # 第一步,检查indoe块和大小 Pass 2: Checking directory structure # 第二步,检查目录结构; Pass 3: Checking directory connectivity # 第三步,检查目录连接性; Pass 4: Checking reference counts # 检查引用计数 Pass 5: Checking group summary information # 检查簇摘要信息 /dev/sda3: 11/328656 files (0.0% non-contiguous), 56006/1313064 blocks
其他相关命令:
1.blkid:
★blkid:块设备属性信息查看
☉语法:
blkid [OPTION]...[DEVICE]
☉选项:
-U UUID:根据指定的UUID来查找对应的设备;
-L LABEL:根据指定的LABEL来查找对应的设备
演示:
[root@CentOS6 ~]# e2label /dev/sda3 MYDATA # 根据指定的卷标,UUID来查找对应的设备 [root@CentOS6 ~]# blkid -L MYDATA /dev/sda3 # 查看其设备的相关属性 [root@CentOS6 ~]# blkid /dev/sda3 /dev/sda3: UUID="ddd258cd-c7bc-48a2-8783-3bb629e21f81" SEC_TYPE="ext2" TYPE="ext3" LABEL="MYDATA" [root@CentOS6 ~]# blkid -U ddd258cd-c7bc-48a2-8783-3bb629e21f81 /dev/sda3
swap文件系统:
★swap文件系统:
Linux上的交换分区必须使用独立的文件系统(磁盘分区);且文件系统的System ID必须为82;
☉创建swap设备:
mkswap 命令
☉语法:
mkswap [OPTIONS] device
☉选项:
-L LIBEL:指明卷标;
-f:强制
演示:
[root@CentOS6 ~]# fdisk -l /dev/sda Disk /dev/sda: 85.9 GB, 85899345920 bytes 255 heads, 63 sectors/track, 10443 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00093c28 Device Boot Start End Blocks Id System /dev/sda1 * 1 26 204800 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 26 7859 62914560 8e Linux LVM /dev/sda3 7859 8512 5252256 83 Linux /dev/sda4 8513 10443 15510757+ 5 Extended /dev/sda5 8513 8905 3156741 83 Linux /dev/sda6 8906 9167 2104483+ 82 Linux swap / Solaris # 创建swap文件系统 [root@CentOS6 ~]# mkswap /dev/sda6 Setting up swapspace version 1, size = 2104476 KiB no label, UUID=c8a63073-5ab8-4384-8905-0326830a3953 [root@CentOS6 ~]# blkid /dev/sda6 /dev/sda6: UUID="c8a63073-5ab8-4384-8905-0326830a3953" TYPE="swap"
支持windows和linux的文件系统:fat32
★Windows无法识别Linux的文件系统;因此存储设备需要在两种系统之间交叉使用时,应该使用windows和linx同时支持的文件系统:fat32(vfat)
# mkfs.vafat device
==============================================================================
第二篇:文件系统的使用(挂载)
==============================================================================
挂载的相关概念
★为什么要挂载
磁盘的分区和格式化完成后,磁盘要想能够使用,就需要挂载,在挂载某个分区前需要先建立一个挂载点。
★相关概念:
☉首先要"挂载":mount 和 卸载 unmount 命令
☉根文件系统之外的其他文件系统要想能够被访问,都必须通过“关联”至根文件系统上的某个目录来实现,此关联操作即为“挂载”,此目录即为挂载点;
☉挂载点:mount_point,作为另一个文件系统的访问入口
事先存在;
应该使用未被或不会被其他进程使用到的目录;
挂载点下原有文件将会被临时隐藏;
☉卸载:为解除此关联关系的过程
卸载时:可使用设备,也可以使用挂载点
mount命令
1.使用方法及语法:
★挂载方法:
mount DEVICE MOUNT_POINT
mount:通过查看/etc/mtab文件显示当前已挂载的所有设备
☉语法:
mount [-nrw] [-t vfstype] [-o options] device dir
◆device:指明要挂载的设备;
设备文件:例如/dev/sda5;
卷标:-L 'LABEL':例如-L 'MYDATA';
UUID, -U 'UUID':例如-U '0c50523c-43f1-45e7-85c0-a126711d406e'
伪文件系统名称:proc, sysfs, devtmpfs, configfs
◆dir:挂载点
事先存在;建议使用空目录;
进程正在使用中的设备无法被卸载
演示:
[root@CentOS6 ~]# blkid /dev/sda3 /dev/sda3: UUID="ddd258cd-c7bc-48a2-8783-3bb629e21f81" SEC_TYPE="ext2" TYPE="ext3" LABEL="MYDATA" # 挂载 /dev/sda3 设备到 /mnt 目录下 [root@CentOS6 ~]# mount /dev/sda3 /mnt [root@CentOS6 ~]# mount /dev/mapper/vg0-root 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) /dev/mapper/vg0-usr on /usr type ext4 (rw) /dev/mapper/vg0-var on /var type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) /dev/sda3 on /mnt type ext3 (rw) # 挂载的设备 [root@CentOS6 ~]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/vg0-root 20511356 407728 19055052 3% / tmpfs 502068 0 502068 0% /dev/shm /dev/sda1 194241 34097 149904 19% /boot /dev/mapper/vg0-usr 10190136 2142576 7523272 23% /usr /dev/mapper/vg0-var 20511356 480824 18981956 3% /var /dev/sda3 5169700 141468 4765620 3% /mnt [root@CentOS6 ~]# cp /etc/fstab /mnt/ [root@CentOS6 ~]# ls /mnt/ fstab lost+found [root@CentOS6 ~]# umount /dev/sda3 # 取消挂载此设备,再次访问文件访问不到 [root@CentOS6 ~]# ls /mnt/ [root@CentOS6 ~]# mount /dev/sda3 /media/ # 挂载到其他文件作为访问入口 [root@CentOS6 ~]# ls /media/ fstab lost+found [root@CentOS6 ~]# umount /media/ [root@CentOS6 ~]# ls /media/
★命令选项
-r:readonly,只读挂载;
-w:read and write, 读写挂载;(默认特性)
-n:在默认情况下,设备挂载或卸载的操作同时会更新至/etc/mtab文件中,-n 用于禁此特性;
-t vsftype:指定要挂载的设备上的文件系统类型;多数情况下可省略,此时mount会通过blkid来判断要挂载的设备的文件系统的类型;
-a:自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件中,且挂载选项中有auto功能);
-L 'LABEL':挂载时以卷标的方式指明挂载设备;
-U 'UUID':挂载时以UUID指定要挂载的设备;(mount -U UUID dir)
-B, --bind:将目录绑定至另一个目录上,作为其临时访问入口;
演示:
1.-r: readonly,只读挂载
# 只读挂载 [root@CentOS6 ~]# mount -r /dev/sda3 /mnt [root@CentOS6 ~]# ls /mnt fstab lost+found # 提示为只读文件系统,不允许创建文件 [root@CentOS6 ~]# cp /etc/issue /mnt cp: cannot create regular file `/mnt/issue': Read-only file system
2.-L 'LABEL': 挂载时以卷标的方式指明挂载设备
[root@CentOS6 ~]# blkid /dev/sda3 /dev/sda3: UUID="ddd258cd-c7bc-48a2-8783-3bb629e21f81" SEC_TYPE="ext2" TYPE="ext3" LABEL="MYDATA" [root@CentOS6 ~]# mount -L MYDATA /mnt [root@CentOS6 ~]# mount /dev/mapper/vg0-root 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) /dev/mapper/vg0-usr on /usr type ext4 (rw) /dev/mapper/vg0-var on /var type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) /dev/sda3 on /mnt type ext3 (rw)
3. -U 'UUID': 挂载时以UUID指定要挂载的设备
[root@CentOS6 ~]# umount /dev/sda3 # 指明 UUID 挂载 [root@CentOS6 ~]# mount -U ddd258cd-c7bc-48a2-8783-3bb629e21f81 /mnt [root@CentOS6 ~]# mount /dev/mapper/vg0-root 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) /dev/mapper/vg0-usr on /usr type ext4 (rw) /dev/mapper/vg0-var on /var type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) /dev/sda3 on /mnt type ext3 (rw) [root@CentOS6 ~]# ls /mnt fstab lost+found
4.-B, --bind: 将目录绑定至另一个目录上,作为其临时访问入口
[root@CentOS6 ~]# umount /mnt # 将 /etc 目录挂载至 /mnt 目录下 [root@CentOS6 ~]# mount -B /etc/ /mnt [root@CentOS6 ~]# mount /dev/mapper/vg0-root 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) /dev/mapper/vg0-usr on /usr type ext4 (rw) /dev/mapper/vg0-var on /var type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) /etc on /mnt type none (rw,bind) [root@CentOS6 ~]# ls /mnt abrt cron.hourly fstab kde nanorc prelink.cache rpc sudo-ldap.conf acpi cron.monthly gai.conf kdump-adv-conf netconfig prelink.conf rpm sysconfig adjtime crontab gconf kdump.conf NetworkManager prelink.conf.d rsyslog.conf sysctl.conf aliases cron.weekly gcrypt krb5.conf networks printcap rsyslog.d sysctl.d aliases.db crypttab gdm ld.so.cache nfsmount.conf profile rwtab system-release
★-o options:(挂载文件系统的选项),多个选项使用逗号分隔
async:异步模式;
sync:同步模式,内存更改时,同时写磁盘;
atime/noatime:文件或目录在被访问时是否更新其访问时间戳;
diratime/nodiratime:目录在被访问是是否更新其访问时间戳;
auto/noauto:是否支持自动挂载,是否支持-a选项;
exec/noexec:是否允许运行此设备上的程序文件;
dev/nodev:此设备上是否允许创建设备文件;
suid/nosuid:是否允许程序文件上的suid和sgid特殊权限生效;
remount:重新挂载;
ro:只读;
rw:读写;
user/nouser:是否允许普通用户挂载此设备,默认管理员才能挂载;
acl:启用此文件系统上的acl功能(mount -o acl device dir 或者 tune2fs -o acl device)
注意:
如果挂载选项什么都不指的话,相当于默认(defaults):相当于rw, suid, dev, exec, auto, nouser, async
演示:
# 默认新创建的文件系统是不支持acl权限的 [root@CentOS6 ~]# mount /dev/sda3 /mnt [root@CentOS6 ~]# mount /dev/mapper/vg0-root 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) /dev/mapper/vg0-usr on /usr type ext4 (rw) /dev/mapper/vg0-var on /var type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) /dev/sda3 on /mnt type ext3 (rw) [root@CentOS6 ~]# ls /mnt lost+found [root@CentOS6 ~]# cp /etc/fstab /mnt/ [root@CentOS6 ~]# getfacl /mnt/fstab getfacl: Removing leading '/' from absolute path names # file: mnt/fstab # owner: root # group: root user::rw- group::r-- other::r-- # 提示不允许设定acl权限 [root@CentOS6 ~]# setfacl -m u:centos:rw /mnt/fstab setfacl: /mnt/fstab: Operation not supported #==================================================================== # 现在重新挂载,并添加挂载选项 acl(多个选项之间用逗号分隔) [root@CentOS6 ~]# mount -o remount,acl /dev/sda3 /mnt [root@CentOS6 ~]# mount /dev/mapper/vg0-root 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) /dev/mapper/vg0-usr on /usr type ext4 (rw) /dev/mapper/vg0-var on /var type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) /dev/sda3 on /mnt type ext3 (rw,acl) # 可以看到多了一个acl权限 [root@CentOS6 ~]# setfacl -m u:centos:rw /mnt/fstab # 设置acl权限成功 [root@CentOS6 ~]# getfacl /mnt/fstab getfacl: Removing leading '/' from absolute path names # file: mnt/fstab # owner: root # group: root user::rw- user:centos:rw- # 设置成功 group::r-- mask::rw- other::r-- # 注意:也可以使用 tune2fs -o acl /dev/sda3 调整其默认挂载选项,使用 tune2fs -l /dev/sda3 查看
2.查看当前系统已挂载的所有设备:
# mount;
# cat /etc/mtab
# cat /proc/mounts
3.挂载光盘和U盘设备:
★挂载光盘
☉光盘设备文件
◆IDE:/dev/hdc;
◆SATA:/dev/sr0
◆符号链接文件
dev/cdrom;
dev/dvd
☉挂载方法:
mount -r /dev/cdrom mount_point
☉特殊挂载光盘的使用方法:
启动 autofs 服务,会将 /dev/sr0 自动挂载到 /misc/cd 目录中;
启动 autofs:# systemctl enable|start autofs (centos7) centos6 可直接使用,随系统自启
☉把光盘制作成iso文件的方法:
使用cp命令直接备份就可以 (cp /dev/cdrom /root/centos6.iso)
★挂载U盘
事先识别U盘的设备文件;
★挂载本地回环设备:
# mount -o loop /PATH/TO/SOME_LOOP_FILE MOUNT_POINT
演示:
# 只读挂载光盘到指定挂载点 [root@CentOS6 ~]# mount -r /dev/cdrom /mnt [root@CentOS6 ~]# cd /mnt [root@CentOS6 mnt]# ls CentOS_BuildTag EULA p_w_picpaths Packages repodata RPM-GPG-KEY-CentOS-Debug-6 RPM-GPG-KEY-CentOS-Testing-6 EFI GPL isolinux RELEASE-NOTES-en-US.html RPM-GPG-KEY-CentOS-6 RPM-GPG-KEY-CentOS-Security-6 TRANS.TBL # 特殊使用方法,启动自动挂载服务(autofs,CentOS6自动开启,7需要手动开启),会挂载到 /misc/cd 目录中 [root@CentOS6 ~]# cd /misc/cd [root@CentOS6 cd]# ls CentOS_BuildTag EULA p_w_picpaths Packages repodata RPM-GPG-KEY-CentOS-Debug-6 RPM-GPG-KEY-CentOS-Testing-6 EFI GPL isolinux RELEASE-NOTES-en-US.html RPM-GPG-KEY-CentOS-6 RPM-GPG-KEY-CentOS-Security-6 TRANS.TBL [root@CentOS6 ~]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/vg0-root 20511356 407728 19055052 3% / tmpfs 502068 0 502068 0% /dev/shm /dev/sda1 194241 34097 149904 19% /boot /dev/mapper/vg0-usr 10190136 2142576 7523272 23% /usr /dev/mapper/vg0-var 20511356 480868 18981912 3% /var /dev/sda3 3824484 3824484 0 100% /mnt /dev/sr0 3824484 3824484 0 100% /misc/cd /dev/sr0 3824484 3824484 0 100% /mnt
umount命令
1.使用方法及语法:
★umount命令
☉使用方法:
umount DEVICE
umount MOUNT_POINT
注意:
正在被进程访问到的挂载点无法被卸载;
☉查看挂载情况:
# findmnt MOUNT_POINT
☉查看被哪个或者哪些进程所占用:
# lsof MOUNT_POINT
# fuser -v MOUNT_POINT
☉终止所有在正访问指定的文件系统的进程:
# fuser -km MOUNT_POINT
演示:
# 当有一个终端在使用时,另一个终端用户执行umount提示正在忙,表示不能卸载 [root@CentOS6 ~]# umount /mnt umount: /mnt: device is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1)) # 查看挂载情况: [root@CentOS6 ~]# findmnt /mnt TARGET SOURCE FSTYPE OPTIONS /mnt /dev/sda3 ext3 rw,relatime,errors=continue,barrier=1,data=ordered # 查看被那个或者哪些进程所占用: [root@CentOS6 ~]# lsof /mnt COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME bash 2059 root cwd DIR 8,3 4096 2 /mnt [root@CentOS6 ~]# fuser -v /mnt USER PID ACCESS COMMAND /mnt: root 2059 ..c.. bash # 终止所有在正访问指定的文件系统的进程: [root@CentOS6 ~]# fuser -km /mnt /mnt: 2059c [root@CentOS6 ~]# umount /mnt # 正常卸载 [root@CentOS6 ~]# mount /dev/mapper/vg0-root 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) /dev/mapper/vg0-usr on /usr type ext4 (rw) /dev/mapper/vg0-var on /var type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)