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 |
1
2
3
4
5
6
|
[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 diratime/nodiratime: 是否更新目录的访问时间戳; exec/noexec: 是否允许执行其中的二进制程序; _netdev: 挂载网络文件系统 acl: 启用 facl |
1
2
3
4
5
6
|
[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 挂载点 #从挂载点中卸载文件系统 |
1
2
3
4
5
6
7
8
9
10
11
|
[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
1
2
3
4
5
6
7
8
9
10
|
[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=ordered 0 0
/proc/bus/usb
/proc/bus/usb
usbfs rw,relatime 0 0
none
/proc/sys/fs/binfmt_misc
binfmt_misc rw,relatime 0 0
|
3.4、查看挂载信息命令 fuser/df/du
fuser -v MOUNT_POINT 查看正在访问指定文件系统的进程
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
[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 终止所有在正访问指定的文件系统的进程
1
2
3
4
5
|
[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 兼容的格式输出; |
1
2
3
4
5
6
7
8
9
|
[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:单位换算 |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
[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 挂载本地回环设备
1
2
3
4
5
6
7
8
9
10
|
[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:显示版本信息。 |
1
2
3
4
5
6
7
8
|
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、 不能跨文件系统; |
符号链接: (inode 号与原文件不相同)
1、 可应用于目录; 2、 可以跨文件系统; 4、 其大小为指定的路径所包含的字符个数; |
命令: ln [-s -v] SRC DEST
-s 创建软连接,默认是是创建硬链接 -v 显示创建过程 |
3.7、 设备文件
设备文件:关联至一个设备驱动程序,进而能够跟与之对应硬件设备进行通信
b: 按块为单位,随机访问的设备;如:硬盘 c:按字符为单位,线性设备;如:键盘 |
路径在/dev 目录下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
[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,指定压缩比是6 -c: 将压缩结果送往标准输出, 可使用重定向将其保存为压缩文件,从而保留原文件 gunzip FILE.gz: 解压完成后会删除原文件 |
bzip2 FILE: -d(解压缩) -#: 1-9,默认是6 -k: 压缩时保留原文件 bunzip2 FILE.bz2 解压完成后会删除原文件 |
xz FILE: -d(解压缩) -#: 1-9, 默认是6 -k: 压缩时保留原文件 xzcat FILE.xz 不解压的情况, 查看文本文件的内容 注:gzip,bzip2,xz 都不能压缩目录,且压缩与解压后都会删除原文件。 |
3.9、归档工具 tar
tar、cpio: 归档工具
tar [OPTION...] [FILE]...
-c: 创建归档文件 -f FILE.tar: 操作的归档文件 -t: 不展开归档,直接查看归档了哪些文件 -C:指定展开的路径 -jcf: 归档并调用bzip2 压缩 -jxf: 调用 bzip2 解压缩并展开归档,-j 选项可省略 -Jcf: 归档并调用xz 压缩 -Jxf: 调用 xz 解压缩并展开归档, -J 选项可省略 |
本文转自 梦想成大牛 51CTO博客,原文链接:http://blog.51cto.com/yinsuifeng/1915242,如需转载请自行联系原作者