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 |
[[email protected] ~]# 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 选项自动挂载; |
[[email protected] ~]# 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 挂载点 #从挂载点中卸载文件系统 |
[[email protected] ~]# mount /dev/vdb1 /tmpfs/ [[email protected] ~]# 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) [[email protected] ~]# umount /dev/vdb1 #直接使用设备方式卸载 [[email protected] ~]# mount /dev/vdb1 /tmpfs/ [[email protected] ~]# umount /tmpfs/ #使用挂载点方式卸载
查看内核追踪到的已挂载的所有设备: cat /proc/mounts
[[email protected] ~]# 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 查看正在访问指定文件系统的进程
[[email protected] ~]# fuser -v /tmpfs/ [[email protected] ~]# 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 终止所有在正访问指定的文件系统的进程
[[email protected] tmpfs]# fuser -v /tmpfs/ 用户 进程号 权限 命令 /tmpfs/: root 1680 ..c.. bash [[email protected] tmpfs]# fuser -km /tmpfs/ /tmpfs/: 1680c
df: 文件系统空间占用等信息的查看工具:
-h: 单位,换算以可读方式输出信息 -i:输出inode数而不是block块数量 -P: 以 Posix 兼容的格式输出; |
[[email protected] ~]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/vda1 20641404 4196328 15396560 22% / [[email protected] ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 20G 4.1G 15G 22% / [[email protected] ~]# df -hi Filesystem Inodes IUsed IFree IUse% Mounted on /dev/vda1 1.3M 142K 1.2M 12% /
du [OPTION]... DIR 查看某目录总体空间占用状态:
-s:整个目录的大小 -h:单位换算 |
[[email protected] ~]# 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 [[email protected] ~]# du -s /etc/ #查看整个目录大小 31020 /etc/ [[email protected] ~]# du -sh /etc/ #但会换算显示 31M /etc/
3.5、本地回环设备与dd 命令
回环设备 loopback, 使用软件来模拟实现硬件,指拿一个大的镜像文件,如 xxx.iso 或xxx.img 等,在此文件内建立一个文件系统,此文件就像一个新的磁盘或光盘设备一样使用。
mount -o loop DEVICE MOUNT_POINT 挂载本地回环设备
[[email protected] home]# dd if=/dev/zero of=/tmp/disk-image count=20480 创建10MB的文件 记录了20480+0 的读入 记录了20480+0 的写出 10485760字节(10 MB)已复制,0.053128 秒,197 MB/秒 [[email protected] home]# mke2fs -q /tmp/disk-image #在文件上创建文件系统 /tmp/disk-image is not a block special device. 无论如何也要继续? (y,n) y [[email protected] home]# mount -o loop /tmp/disk-image /tmpfs/ #使用回环设备将文件挂载起来 [[email protected] 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/秒 [[email protected] ~]# [[email protected] ~]# 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、 不会增加被链接文件的链接次数; |
命令: ln [-s -v] SRC DEST
-s 创建软连接,默认是是创建硬链接 -v 显示创建过程 |
3.7、 设备文件
设备文件:关联至一个设备驱动程序,进而能够跟与之对应硬件设备进行通信
b: 按块为单位,随机访问的设备;如:硬盘 c:按字符为单位,线性设备;如:键盘 |
路径在/dev 目录下:
[[email protected] ~]# 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: 压缩时保留原文件 unxz FILE.xz 解压完成后会删除原文件 |
3.9、归档工具 tar
tar、cpio: 归档工具
tar [OPTION...] [FILE]...
-c: 创建归档文件 -f FILE.tar: 操作的归档文件 -x: 展开归档 --xattrs: 归档时,保留文件的扩展属性信息 -t: 不展开归档,直接查看归档了哪些文件 -C:指定展开的路径 -zcf: 归档并调用gzip 压缩 -zxf: 调用 gzip 解压缩并展开归档,-z 选项可省略 |