首页 > 代码库 > 三、文件系统的挂载与文件的归档

三、文件系统的挂载与文件的归档

3.1、挂载的概念

  挂载:  将新的文件系统关联至当前文件系统。
  卸载:  将某文件系统与当前根文件系统的关联关系予以移除。
  挂载点:目录,挂载完成后,要通过挂载点访问对应文件系统上的文件。
    1、此目录没有被其它进程使用; 

    2、目录得事先存在;

    3、目录中的原有的文件将会暂时隐藏。

3.2、开机挂载

  在linux系统中,有些文件系统是开机就会自动挂载的。这些文件系统的挂载都定义在/etc/fstab文件下。在此文件中,每一行代表挂载一个文件系统,通常分为6段,其每一段代表的含义为:

要挂载的设备可以使用设备文件,卷标,UUID
挂载点:SWAP(交换分区)的挂载点即为SWAP
文件系统类型:
挂载选项:
转储频率:  0:不做备份; 1:每天转储;2:每隔一天转储

文件系统检测次序: 0:不自检; 1:首先自检,一般只有 rootfs 才用 1

如: /dev/sda5 /mnt/test ext3 defaults 0 0

[root@mylinux ~]# cat /etc/fstab 
/dev/vda1            /                    ext3       noatime,acl,user_xattr 1 1
proc                 /proc                proc       defaults              0 0
sysfs                /sys                 sysfs      noauto                0 0
debugfs              /sys/kernel/debug    debugfs    noauto                0 0
devpts               /dev/pts             devpts     mode=0620,gid=5

3.3、手动挂载命令mount/umount

mount [options] [-t fstype ] [-o options] 设备 挂载点
 [options]: 命令的选项
  [-o options]:挂载时启用分区特性
  不带任何选项:显示当前系统已经挂载的设备及挂载点


命令选项:
  -a: 挂载/etc/fstab 文件中定义的所有文件系统
  -r: 只读挂载 -w: 读写挂载
  -L lable: 以卷标指定, LABLE=label
  -U UUID: 以 UUID 指定挂载设备, UUID=UUID
  -t FSTYPE: 指定正在挂载设备上的文件系统的类型;
  -n: 默认情况下, mount 命令每挂载一个设备, 都会把挂载的设备信息保存至
/etc/mtab 文件;使用—n 选项意味着挂载设备时,不把信息写入此文件;
分区特性选项
-o:

  async: 异步 I/O 

  sync: 同步 I/O 

  ro: 挂载为只读 

  rw: 读写挂载

  remount: 重新挂载当前文件系统 

  noatime/atime: 建议 noatime

  auto/noauto: 是否能够被 mount -a 选项自动挂载;
  diratime/nodiratime: 是否更新目录的访问时间戳;
  exec/noexec: 是否允许执行其中的二进制程序;
  _netdev: 挂载网络文件系统
  acl: 启用 facl

[root@mylinux ~]# mount                    #查看当前系统已经挂载的设备及挂载点
/dev/vda1 on / type ext3 (rw,noatime,acl,user_xattr)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,mode=0620,gid=5)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

umount:卸载某文件系统,挂载的设备应当没有进程使用。

umount 设备        #直接卸载文件系统

umount 挂载点      #从挂载点中卸载文件系统

[root@mylinux ~]# mount /dev/vdb1 /tmpfs/
[root@mylinux ~]# mount
/dev/vda1 on / type ext3 (rw,noatime,acl,user_xattr)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,mode=0620,gid=5)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/vdb1 on /tmpfs type ext3 (rw)
[root@mylinux ~]# umount /dev/vdb1      #直接使用设备方式卸载
[root@mylinux ~]# mount /dev/vdb1 /tmpfs/
[root@mylinux ~]# umount /tmpfs/        #使用挂载点方式卸载

查看内核追踪到的已挂载的所有设备: cat /proc/mounts

[root@mylinux ~]# 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=498084k,nr_inodes=124521,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/vda1 / ext3 rw,noatime,errors=continue,user_xattr,acl,barrier=1,data=http://www.mamicode.com/ordered 0 0>

3.4、查看挂载信息命令 fuser/df/du
fuser -v MOUNT_POINT  查看正在访问指定文件系统的进程

[root@mylinux ~]# fuser -v /tmpfs/
[root@mylinux ~]# fuser -v /
                     用户     进程号 权限   命令
/:                   root          1 .rc.. init
                     root          2 .rc.. kthreadd
                     root          3 .rc.. migration/0
                     root          4 .rc.. ksoftirqd/0
                     root          5 .rc.. stopper/0
                     root          6 .rc.. watchdog/0
                     root          7 .rc.. events/0
                     root          8 .rc.. events/0
                     root          9 .rc.. events_long/0
                     root         10 .rc.. events_power_ef
                     root         11 .rc.. cgroup
                     root         12 .rc.. khelper

fuser -km MOUNT_POINT 终止所有在正访问指定的文件系统的进程

[root@mylinux tmpfs]# fuser -v /tmpfs/
                     用户     进程号 权限   命令
/tmpfs/:             root       1680 ..c.. bash
[root@mylinux tmpfs]# fuser -km /tmpfs/
/tmpfs/:              1680c

df: 文件系统空间占用等信息的查看工具:

-h: 单位,换算以可读方式输出信息 

-i:输出inode数而不是block块数量

-P: 以 Posix 兼容的格式输出;

[root@mylinux ~]# df 
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/vda1       20641404 4196328  15396560  22% /
[root@mylinux ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        20G  4.1G   15G  22% /
[root@mylinux ~]# df -hi
Filesystem     Inodes IUsed IFree IUse% Mounted on
/dev/vda1        1.3M  142K  1.2M   12% /

du [OPTION]... DIR 查看某目录总体空间占用状态:

-s:整个目录的大小 

-h:单位换算

[root@mylinux ~]# du /etc/     #默认显示目录下每个文件的大小
12      /etc/gnome-vfs-2.0/modules
16      /etc/gnome-vfs-2.0
4       /etc/security/namespace.d
12      /etc/security/limits.d
4       /etc/security/console.perms.d
56      /etc/security/console.apps
136     /etc/security
8       /etc/plymouth
60      /etc/setuptool.d
64      /etc/profile.d
128     /etc/bash_completion.d
[root@mylinux ~]# du -s /etc/   #查看整个目录大小
31020   /etc/
[root@mylinux ~]# du -sh /etc/  #但会换算显示
31M     /etc/

3.5、本地回环设备与dd 命令
  回环设备
loopback, 使用软件来模拟实现硬件,指拿一个大的镜像文件,如 xxx.iso xxx.img 等,在此文件内建立一个文件系统,此文件就像一个新的磁盘或光盘设备一样使用。

mount -o loop DEVICE MOUNT_POINT 挂载本地回环设备

[root@mylinux home]#  dd if=/dev/zero of=/tmp/disk-image count=20480 创建10MB的文件
记录了20480+0 的读入
记录了20480+0 的写出
10485760字节(10 MB)已复制,0.053128 秒,197 MB/秒
[root@mylinux home]# mke2fs -q /tmp/disk-image              #在文件上创建文件系统
/tmp/disk-image is not a block special device.
无论如何也要继续? (y,n) y
[root@mylinux home]# mount -o loop  /tmp/disk-image /tmpfs/ #使用回环设备将文件挂载起来  
[root@mylinux home]# ls /tmpfs/
lost+found

  dd是Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。命令的简单使用:dd (选项)

bs=<字节数>:将ibs(输入)与obs(输出)设成指定的字节数; 

cbs=<字节数>:转换时,每次只转换指定的字节数; 

conv=<关键字>:指定文件转换的方式; 

count=<区块数>:仅读取指定的区块数; 

ibs=<字节数>:每次读取的字节数; 

obs=<字节数>:每次输出的字节数; 

of=<文件>:输出到文件; 

seek=<区块数>:一开始输出时,跳过指定的区块数; 

skip=<区块数>:一开始读取时,跳过指定的区块数; 

--help:帮助; 

--version:显示版本信息。

dd if=/dev/zero of=sun.txt bs=1M count=1
记录了1+0 的读入
记录了1+0 的写出
1048576字节(1.0 MB)已复制,0.00208068 秒,504 MB/秒
[root@mylinux ~]# 
[root@mylinux ~]# ls
anaconda-ks.cfg     install.log         sun.txt
bolimowski2016.pdf  install.log.syslog

dd 命令可用于备份整个分区或者磁盘

dd if=/dev/sda of=/tmp/myfile bs=512 count=1 备份MBR
dd if=/dev/zero of=/dev/sdb bs=500 count=1 
破坏MBR

3.6、链接文件
硬链接:
(inode号与原文件相同,不能跨分区)

1、 只能对文件创建,不能应用于目录; 

2、 不能跨文件系统;

3、 创建硬链接会增加文件被链接的次数;

符号链接: (inode 号与原文件不相同)

1、 可应用于目录; 

2、 可以跨文件系统;

3、 不会增加被链接文件的链接次数;
4、 其大小为指定的路径所包含的字符个数;

命令: ln [-s -v] SRC DEST

-s 创建软连接,默认是是创建硬链接
-v 显示创建过程

3.7、 设备文件
  设备文件:关联至一个设备驱动程序,进而能够跟与之对应硬件设备进行通信

b: 按块为单位,随机访问的设备;如:硬盘
c:按字符为单位,线性设备;如:键盘

路径在/dev 目录下:

[root@mylinux ~]# cd /dev/
crw-rw-rw- 1 root tty       5,   2 4月  12 14:55 ptmx
drwxr-xr-x 2 root root           0 4月  12 14:08 pts
brw-rw---- 1 root disk      1,   0 4月  12 14:09 ram0
brw-rw---- 1 root disk      1,   1 4月  12 14:09 ram1
brw-rw---- 1 root disk      1,  10 4月  12 14:09 ram10
brw-rw---- 1 root disk      1,  11 4月  12 14:09 ram11
brw-rw---- 1 root disk      1,  12 4月  12 14:09 ram12
brw-rw---- 1 root disk      1,  13 4月  12 14:09 ram13
brw-rw---- 1 root disk      1,  14 4月  12 14:09 ram14
brw-rw---- 1 root disk      1,  15 4月  12 14:09 ram15
brw-rw---- 1 root disk      1,   2 4月  12 14:09 ram2
brw-rw---- 1 root disk      1,   3 4月  12 14:09 ram3
brw-rw---- 1 root disk      1,   4 4月  12 14:09 ram4
brw-rw---- 1 root disk      1,   5 4月  12 14:09 ram5
brw-rw---- 1 root disk      1,   6 4月  12 14:09 ram6
brw-rw---- 1 root disk      1,   7 4月  12 14:09 ram7
brw-rw---- 1 root disk      1,   8 4月  12 14:09 ram8
brw-rw---- 1 root disk      1,   9 4月  12 14:09 ram9

在每行的第五列字段标出了设备号分为主设备号与次设备号。

  主设备号( major number):用来标识与设备文件相连的驱动程序  

  次设备号( minor number):次设备号被驱动程序用来辨别操作的是哪个设备

创建命令设备的:mknod [OPTION]... NAME TYPE [MAJOR MINOR]

-m MODE(指定权限)
-b :设备名称成为外部存储设备文件
-c :设备名称成为外部输入设备文件

3.8、压缩命令 zip/gzip/bzip/xz

zip: 既归档又压缩的工具,可以压缩目录压缩后不删除原文件;压缩时需要指定压缩后的文件名。
  zip FILENAME.zip FILE1 FILE2 ...:
  unzip FILENAME.zip

gzip FILE: 

  -d(解压缩)

  -#1-9,指定压缩比是

  -c: 将压缩结果送往标准输出, 可使用重定向将其保存为压缩文件,从而保留原文件

gunzip FILE.gz: 解压完成后会删除原文件
zcat FILE.gz:不解压的情况,查看文本文件的内容

bzip2 FILE

  -d(解压缩

  -#: 1-9,默认是6

  -k: 压缩时保留原文件

bunzip2 FILE.bz2 解压完成后会删除原文件
bzcat FILE.bz2 不解压的情况,查看文本文件的内容

xz FILE: 

  -d(解压缩

  -#: 1-9, 默认是

  -k: 压缩时保留原文件

unxz FILE.xz 解压完成后会删除原文件
xzcat FILE.xz 不解压的情况, 查看文本文件的内容
注:
gzip,bzip2,xz 都不能压缩目录,且压缩与解压后都会删除原文件。

3.9、归档工具 tar
tar、cpio: 归档工具
tar [OPTION...] [FILE]...

-c: 创建归档文件 

-f FILE.tar: 操作的归档文件

-x: 展开归档 --xattrs: 归档时,保留文件的扩展属性信息

-t: 不展开归档,直接查看归档了哪些文件 

-C:指定展开的路径

-zcf: 归档并调用gzip 压缩       -zxf: 调用 gzip 解压缩并展开归档,-z 选项可省略
-jcf: 归档并调用bzip2 压缩      -jxf: 调用 bzip2 解压缩并展开归档,-j 选项可省略
-Jcf: 归档并调用xz 压缩         -Jxf: 调用 xz 解压缩并展开归档, -J 选项可省略


本文出自 “随风而飘” 博客,请务必保留此出处http://yinsuifeng.blog.51cto.com/10173491/1915242

三、文件系统的挂载与文件的归档