Linux磁盘分区及文件系统管理详解(3)

文件系统的使用

文件系统创建完毕之后,想要使用,就必须要挂载到指定的位置。

根文件系统之外的其他系统想要能够被访问,就必须挂载在根文件系统上的某一个目录上,而此目录被称为挂载点。

挂载点:一个文件系统的访问入口,它有以下特性:

1.目录必须实现存在

2.应该使用未被或者不会被其他进程使用的目录

3.挂载点下原有的文件会被隐藏

 mount

挂载文件系统

mount [-nrw] [-t vfstype] [-o options] device dir 命令选项: -r:readonly,只读挂载; -w:read and write, 读写挂载; -n:默认情况下,设备挂载或卸载的操作会同步更新至/etc/mtab文件中;-n用于禁止此特性; -t vfstype:指明要挂载的设备上的文件系统的类型;多数情况下可省略,此时mount会通过blkid来判断要挂载的设备的文件系统类型; -L LABEL:挂载时以卷标的方式指明设备; mount -L LABEL dir -U UUID:挂载时以UUID的方式指明设备; mount -U UUID dir -o options:挂载选项 sync/async:同步/异步操作; atime/noatime:文件或目录在被访问时是否更新其访问时间戳; diratime/nodiratime:目录在被访问时是否更新其访问时间戳; remount:重新挂载; acl:支持使用facl功能; # mount -o acl device dir # tune2fs -o acl device ro:只读 rw:读写 dev/nodev:此设备上是否允许创建设备文件; exec/noexec:是否允许运行此设备上的程序文件; auto/noauto: user/nouser:是否允许普通用户挂载此文件系统; suid/nosuid:是否允许程序文件上的suid和sgid特殊权限生效; defaults:Use default options: rw, suid, dev, exec, auto, nouser, async, and relatime.

 

 注意:也可以将挂载后的目录再挂载到另一个目录上,作为其临时访问入口

举例:将/dev/sdb1挂载到/mnt目录下

[root@localhost ~]# mount /dev/sdb1 /mnt/ [root@localhost ~]# df -l 文件系统 1K-块 已用 可用 已用% 挂载点 /dev/mapper/cl-root 16250880 3542180 12708700 22% / devtmpfs 1000180 0 1000180 0% /dev tmpfs 1016076 84 1015992 1% /dev/shm tmpfs 1016076 9116 1006960 1% /run tmpfs 1016076 0 1016076 0% /sys/fs/cgroup /dev/sdb1 20511312 45080 19401272 1% /mnt /dev/sda1 508580 151316 357264 30% /boot /dev/mapper/cl-var 2086912 427172 1659740 21% /var tmpfs 203216 16 203200 1% /run/user/42 tmpfs 203216 0 203216 0% /run/user/0 

 查看当前系统系统所有已经挂载的设备

三种方式:

#mount #cat /etc/mtab #cat /proc/mounts

 卸载文件系统

umount device/dir #指定设备名和目录都可以

注意:

如果挂载点下有文件被访问,我们无法卸载

可以使用以命令来查看哪些进程占用了挂载点:

lsof MOUNT_POINT fuser -v MOUNT_POINT

并可以使用如下面命令,强制终止所有正在访问的某挂载点

fuser -km MOUNT_POINT

 交换分区的启用和禁用

交换分区不需要挂载。

创建交换分区:

mkswap device #将指定的分区创建支持swap格式的文件系统,也可以进入fdisk的交互模式下,使用t选项

 启用:

swapon [OPTION] [DEVICE] -a:定义在/etc/fstab文件中的所有swap设备;

禁用:

swapoff device

 查看:

[root@localhost mnt]# cat /proc/swaps Filename Type Size Used Priority /dev/dm-1 partition 2097148 0 -1 /dev/sdb5 partition 20971516 0 -2

配置文件/etc/fstab

 默认情况下只有根文件系统能够自动挂载,可将需要自动挂载的设备等信息按指定的格式写在/etc/fstab文件中:

 

[root@localhost ~]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Sun Jul 16 04:37:14 2017 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/cl-root / xfs defaults 0 0 UUID=ee087898-527c-41b0-85f6-3880e6bf0b73 /boot xfs defaults 0 0 /dev/mapper/cl-var /var xfs defaults 0 0 /dev/mapper/cl-swap swap swap defaults 0 0

从左到右分为6个字段:
(1)要挂载的设备,可以使用设备文件,卷标和UUID

(2)挂载点,swap类型的设备文件挂载点为swap

(3)文件系统类型

(4)挂载选项:defaults为默认挂载选项,多个挂载选项之间用逗号隔开

(5)转储频率:0:从不备份,1:每天备份,2:每隔一天备份

(6)自检次序:0:不自检,1:首先自检,只能是根文件系统,2,次级自检���以此类推

可以使用mount -a:自动挂载在此文件中所支持的自动挂载设备

举个例子:将系统光盘自动挂载在/mnt目录下,使其开机自动挂载:

[root@localhost ~]# vim /etc/fstab # # /etc/fstab # Created by anaconda on Sun Jul 16 04:37:14 2017 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/cl-root / xfs defaults 0 0 UUID=ee087898-527c-41b0-85f6-3880e6bf0b73 /boot xfs defaults 0 0 /dev/mapper/cl-var /var xfs defaults 0 0 /dev/mapper/cl-swap swap swap defaults 0 0 /dev/sr0 /mnt iso9660 defaults 0 0

 

 重启设备确认挂载成功:

 

[root@localhost ~]# df 文件系统 1K-块 已用 可用 已用% 挂载点 /dev/mapper/cl-root 16250880 3542224 12708656 22% / devtmpfs 1000180 0 1000180 0% /dev tmpfs 1016076 84 1015992 1% /dev/shm tmpfs 1016076 9116 1006960 1% /run tmpfs 1016076 0 1016076 0% /sys/fs/cgroup /dev/sr0 4276440 4276440 0 100% /mnt /dev/sda1 508580 151316 357264 30% /boot /dev/mapper/cl-var 2086912 427160 1659752 21% /var tmpfs 203216 12 203204 1% /run/user/42 tmpfs 203216 0 203216 0% /run/user/0

其他常用命令

 df

报告文件系统磁盘的使情况

df [OPTIONS] file -l:显示本地文件的相关信息 -h:以human_readabel的方式显示 -i:显示inode的使用状态,而不是block

[root@localhost ~]# df -l 文件系统 1K-块 已用 可用 已用% 挂载点 /dev/mapper/cl-root 16250880 3542172 12708708 22% / devtmpfs 1000180 0 1000180 0% /dev tmpfs 1016076 84 1015992 1% /dev/shm tmpfs 1016076 9112 1006964 1% /run tmpfs 1016076 0 1016076 0% /sys/fs/cgroup /dev/sda1 508580 151316 357264 30% /boot /dev/mapper/cl-var 2086912 426924 1659988 21% /var tmpfs 203216 12 203204 1% /run/user/42 tmpfs 203216 0 203216 0% /run/user/0

[root@localhost ~]# df -l /mnt/CentOS_BuildTag #查看某个文件属于哪个文件系统 文件系统 1K-块 已用 可用 已用% 挂载点 /dev/sr0 4276440 4276440 0 100% /mnt

 dd

 转换和拷贝文件,它每次从输入读取的是一个块的大小(默认512字节)

 

if=FILE:从FILE读而不是标准输入 of=FILE:写到FILE里去,而不是标准输出 ibs=BYTES:一次读取BYTES个字节 obs=BYTES:一次写BYTES个字节 bs=BYTES:一次性读写BYTES个字节 skip=blocks:在拷贝之前,跳过输出文件的前blocks个块,每块大写为ibs个字节 seek=blocks:在拷贝之前,跳过输出文件的前 blocks 块,每块大小为 obs-byte 字节 count=blocks:只拷贝输入文件的前 blocks 块(每块的大小为 ibs-byte 字节),而不是全部内容,直到文件末尾。

举例:

1.将本地的/dev/sda整盘备份到/dev/sdb中

dd if=/dev/sda of=/dev/sdb

2.将/dev/sda整盘保存到/root/my_sda

dd if=/dev/sda of=/root/my_sda

3.备份MBR

dd if=/dev/sda of=/root/my_mbr count=1 bs=512

 一个好玩的设备文件/dev/zero,是一个输入设备,它可以向外面不断的吐0,另外的一个设备文件是/dev/null,它像一个无底洞一样,可以吞噬一切数据。

4.格式化硬盘

dd if=/dev/zero of=/dev/sda bs=512 count=1

 du

查看当前指定的文件或目录占磁盘空间的大小,会递归显示

du [OPTIONS] file -a:显示对所有文件的统计,而不只是包含子目录。 -b:输出以字节为单位的大小,替代缺省时1024字节的计数单位。 --block-size=size:输出以块为单位的大小,块的大小为 size 字节。( file- utils-4.0 的新选项) -h: 为每个数附加一个表示大小单位的字母,象用M表示二进制 的兆字节。 -k:输出以1024字节为计数单位的大小。 -m:输出以兆字节的块为计数单位的大小(就是 1,048,576 字节)。 --max-depth=n:只输出命令行参数的小于等于第 n 层的目录的总计。 详细可以查看man手册

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/13472.html