挂载mount
挂载: 将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其它文件访问入口的行为 卸载: 为解除此关联关系的过程 把设备关联挂载点:mount Point mount 卸载时: 可使用设备,也可以使用挂载点 umount 挂载点下原有文件在挂载完成后会被临时隐藏 挂载点目录一般为空
用mount命令挂载文件系统
挂载方法:mount DEVICE MOUNT_POINT mount 不带任何参数 通过查看/etc/mtab文件显示当前已挂载的所有设备 mount [-fnrsvw] [-t vfstype] [-o options] device dir device:指明要挂载的设备; (1) 设备文件:例如/dev/sda5 (2) 卷标:-L 'LABEL', 例如-L 'MYDATA' (3) UUID, -U 'UUID':例如-U '0c50523c-43f1-45e7-85c0-a126711d406e' (4) 伪文件系统名称:proc, sysfs, devtmpfs, configfs dir:挂载点 事先存在;建议使用空目录 进程正在使用中的设备无法被卸载 -o options 挂在选项开启关闭什么功能。 man mount FILESYSTEM INDEPENDENT MOUNT OPTIONS
mount常用命令选项
-r: readonly,只读挂载 光驱只能只读挂载,其他文件系统也可以挂载,防止文件被修改 -w: read and write, 读写挂载 (默认读写) -n: 不更新/etc/mtab,默认挂载会卸载都会同步更新此文件。mtab的内容与mount命令内容基本一致。 -a:自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件中,且挂载选项中有auto功能) -L 'LABEL': 以卷标指定挂载设备 -U 'UUID': 以UUID指定要挂载的设备 -B, --bind: 绑定目录到另一个目录上 目录挂载到目录上 -t vsftype:指定要挂载的设备上的文件系统类型 多数情况下可省略。mount会自动通过 目录绑定 mount --bind 源目录 目标目录 blkid命令识别设备类型。 查看内核追踪到的已挂载的所有设备: cat /proc/mounts
mount常用命令选项
-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功能 suid:是否允许特殊权限生效 Defaults:相当于rw, suid, dev, exec, auto, nouser, async
使用技巧:
查看当前系统所有已挂载的设备 mount cat /etc/mtab cat /proc/mounts 这个是最准确的。
卸载命令
查看挂载情况: #findmnt MOUNT_POINT [root@localhost ~]# findmnt TARGET SOURCE FSTYPE OPTIONS / /dev/sda2 xfs rw,relatime,attr2,inode64,noquota ├─/sys sysfs sysfs rw,nosuid,nodev,noexec,relatime │ ├─/sys/kernel/security securityfs securityfs rw,nosuid,nodev,noexec,relatime │ ├─/sys/fs/cgroup tmpfs tmpfs ro,nosuid,nodev,noexec,mode=755 │ │ ├─/sys/fs/cgroup/systemd cgroup cgroup rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd │ │ ├─/sys/fs/cgroup/memory cgroup cgroup rw,nosuid,nodev,noexec,relatime,memory │ │ ├─/sys/fs/cgroup/net_cls cgroup cgroup rw,nosuid,nodev,noexec,relatime,net_cls │ │ ├─/sys/fs/cgroup/hugetlb cgroup cgroup rw,nosuid,nodev,noexec,relatime,hugetlb │ │ ├─/sys/fs/cgroup/cpuset cgroup cgroup rw,nosuid,nodev,noexec,relatime,cpuset │ │ ├─/sys/fs/cgroup/blkio cgroup cgroup rw,nosuid,nodev,noexec,relatime,blkio │ │ ├─/sys/fs/cgroup/cpu,cpuacct cgroup cgroup rw,nosuid,nodev,noexec,relatime,cpuacct,cpu │ │ ├─/sys/fs/cgroup/perf_event cgroup cgroup rw,nosuid,nodev,noexec,relatime,perf_event │ │ ├─/sys/fs/cgroup/freezer cgroup cgroup rw,nosuid,nodev,noexec,relatime,freezer │ │ └─/sys/fs/cgroup/devices cgroup cgroup rw,nosuid,nodev,noexec,relatime,devices │ ├─/sys/fs/pstore pstore pstore rw,nosuid,nodev,noexec,relatime │ ├─/sys/kernel/debug debugfs debugfs rw,relatime │ └─/sys/kernel/config configfs configfs rw,relatime ├─/proc proc proc rw,nosuid,nodev,noexec,relatime │ ├─/proc/sys/fs/binfmt_misc systemd-1 autofs rw,relatime,fd=34,pgrp=1,timeout=300,minproto=5,maxproto=5,direct │ └─/proc/fs/nfsd nfsd nfsd rw,relatime ├─/dev devtmpfs devtmpfs rw,nosuid,size=486144k,nr_inodes=121536,mode=755 │ ├─/dev/shm tmpfs tmpfs rw,nosuid,nodev │ ├─/dev/pts devpts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 │ ├─/dev/mqueue mqueue mqueue rw,relatime │ └─/dev/hugepages hugetlbfs hugetlbfs rw,relatime ├─/run tmpfs tmpfs rw,nosuid,nodev,mode=755 │ └─/run/user/0 tmpfs tmpfs rw,nosuid,nodev,relatime,size=100136k,mode=700 ├─/var/lib/nfs/rpc_pipefs sunrpc rpc_pipefs rw,relatime ├─/usr /dev/sda3 xfs rw,relatime,attr2,inode64,noquota └─/boot /dev/sda1 xfs rw,relatime,attr2,inode64,noqu
查看正在访问指定文件系统的进程:
#lsof MOUNT_POINT #fuser -v MOUNT_POINT
终止所有在正访问指定的文件系统的进程:
# fuser -km MOUNT_POINT 谨慎使用
卸载:
# umount DEVICE # umount MOUNT_POINT
挂载实例
查看分区信息 [root@localhost ~]# fdisk -l Disk /dev/sda: 128.8 GB, 128849018880 bytes, 251658240 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x00026d95 Device Boot Start End Blocks Id System /dev/sda1 * 2048 1001471 499712 83 Linux /dev/sda2 1001472 84887551 41943040 83 Linux /dev/sda3 84887552 126830591 20971520 83 Linux /dev/sda4 126830592 251658239 62413824 5 Extended /dev/sda5 126834688 131031039 2098176 82 Linux swap / Solaris /dev/sda6 126832640 126834687 1024 83 Linux /dev/sda7 131033088 172976127 20971520 83 Linux /dev/sda8 172978176 193949695 10485760 83 Linux 查看已经挂载的分区 [root@localhost ~]# mount | grep "sda" /dev/sda2 on / type xfs (rw,relatime,attr2,inode64,noquota) /dev/sda3 on /usr type xfs (rw,relatime,attr2,inode64,noquota) /dev/sda1 on /boot type xfs (rw,relatime,attr2,inode64,noquota) 查看分区类型、卷标、uuid root@localhost ~]# blkid /dev/sda7 /dev/sda7: LABEL="mydate" UUID="dfc6560a-aad9-4df1-b79a-b5316620bc1e" TYPE="ext4" 挂载文件系统 [root@localhost ~]# mkdir /mydata [root@localhost ~]# mount /dev/sda7 /mydata
挂载点和/etc/fstab
配置文件系统体系 被mount、fsck和其它程序使用 系统重启时保留文件系统体系 可以在设备栏使用文件系统卷标 使用mount -a 命令挂载/etc/fstab中的所有文件系统
文件挂载配置文件
/etc/fstab每行定义一个要挂载的文件系统; 要挂载的设备或伪文件系统 挂载点 文件系统类型 挂载选项 转储频率 自检次序 要挂载的设备或伪文件系统: 设备文件、LABEL(LABEL="")、UUID(UUID="")、伪文件系统名称(proc, sysfs) 挂载选项:defaults 转储频率:0:不做备份 1:每天转储 2:每隔一天转储 自检次序:0:不自检 1:首先自检;一般只有rootfs才用1
处理交换文件和分区
交换分区是系统RAM的补充 基本设置包括: •创建交换分区或者文件 •使用mkswap写入特殊签名 •在/etc/fstab文件中添加适当的条目 •使用swapon -a 激活交换空间
挂载交换分区
swap
linux上的交换分区必须使用独立的文件系统 且文件系统的systemid必须为82 mkswap [options] device [size] 创建交换分区文件系统 启用:swapon swapon[OPTION]... [DEVICE] -a:激活所有的交换分区; -p PRIORITY:指定优先级 /etc/fstab:pri=value 禁用:swapoff[OPTION]... [DEVICE]
SWAP的优先级
用户可以给某个swap指定一个0到32767的优先级 如果用户没有指定,那么核心会自动给swap指定一个优先级,这个优先级从-1开始,每加入一个新的没有用户指定优先级的swap,会给这个优先级减一。 先添加的swap的缺省优先级比较高,除非用户自己指定一个优先级,而用户指定的优先级(是正数)永远高于核心缺省指定的优先级(是负数)。 优化性能:分布存放,高性能磁盘存放
移动介质
挂载(Mounting)意味着使外来的文件系统看起来如同是主目录树的一部分。 访问前、介质必须被挂载 摘除时,介质必须被卸载 按照默认设置,非根用户只能挂载某些设备(光盘、DVD、软盘、USB等等) 挂载点通常在/media 或/mnt下
使用光盘
在图形环境下自动启动挂载 /run/media/<user>/<label> 否则就必须被手工挂载 mount -r /dev/cdrom/ mnt/ eject命令卸载或弹出磁盘 创建ISO镜像文件 cp /dev/cdrom /root/centos7.iso mkisofs -r -o /root/etc.iso /etc 刻录光盘 wodim–v –eject centos.iso
挂载USB介质
被内核探测为SCSI设备 •/dev/sdaX、/dev/sdbX、或类似的设备文件 在图形环境中自动挂载 •图标在[计算机]窗口中创建 •挂载在/run/media/<user>/<label> •手动挂载 •mount /dev/sdb1 /mnt
常见工具
内存空间使用状态: free [OPTION] -m: 以MB为单位 -g: 以GB为单位 文件系统空间占用等信息的查看工具: df[OPTION]... [FILE]... -H 1000 -T 文件系统类型 -h: human-readable -i:inodesinstead of blocks -P: 以Posix兼容的格式输出 查看某目录总体空间占用状态: du [OPTION]... DIR -h: human-readable -s: summary
工具dd
dd命令:convert and copy a file 用法: ddif=/PATH/FROM/SRC of=/PATH/TO/DEST bs=#:block size, 复制单元大小 count=#:复制多少个bs of=file写到所命名的文件而不是到标准输出 if=file从所命名文件读取而不是从标准输入 bs=size指定块大小(既是是ibs也是obs) ibs=size一次读size个byte obs=size 一次写size个byte cbs=size 一次转化size个byte skip=blocks从开头忽略blocks个ibs大小的块 seek=blocks从开头忽略blocks个obs大小的块 count=n只拷贝n个记录 conv=conversion[,conversion...] 用指定的参数转换文件。 转换参数: ascii 转换EBCDIC 为ASCII。 ebcdic 转换ASCII 为EBCDIC。 block 转换为长度为cbs 的记录,不足部分用空格填充。 unblock 替代cbs长度的每一行尾的空格为新行。 lcase 把大写字符转换为小写字符。 ucase 把小写字符转换为大写字符。 swab 交换输入的每对字节。 noerror 出错时不停止。 notrunc 不截短输出文件。 直接替换内容而不是给短输出文件,不改变文件大小 sync 把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐
注意:skip=xxx是在备份时对if 后面的部分也就是原文件跳过多少块再开始备份;seek=xxx则是在备份时对of 后面的部分也就是目标文件跳过多少块再开始写。
磁盘拷贝: dd if=/dev/sdaof=/dev/sdb 备份MBR: dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1 破坏MBR中的bootloader: dd if=/dev/zero of=/dev/sda bs=64 count=1 seek=446 有二进制文件fileA,size>2K。现在想从第64个字节位置开始读取,需要读取的大小是128Byts。又有fileB, 想把上面读取到的128Bytes写到第32个字节开始的位置,替换128Bytes,请问如何实现? #dd if=fileA of=fileB bs=1 count=128 skip=63 seek=31 conv=notrunc notrunc 不截短输出文件。 直接替换内容而不是给短输出文件,不改变文件大小 备份: dd if=/dev/sdx of=/dev/sdy 将本地的/dev/sdx整盘备份到/dev/sdy 设备对拷 dd if=/dev/sdx of=/path/to/image 将/dev/sdx全盘数据备份到指定路径的image文件 将整个设备里的二进制内容保存为一个文件 dd if=/dev/sdx | gzip >/path/to/image.gz 备份/dev/sdx全盘数据,并利用gzip工具进行压缩,保存到指定路径 恢复: dd if=/path/to/image of=/dev/sdx 将备份文件恢复到指定盘 gzip -dc /path/to/image.gz | dd of=/dev/sdx 将压缩的备份文件恢复到指定盘 拷贝内存资料到硬盘 dd if=/dev/mem of=/root/mem.bin bs=1024 将内存里的数据拷贝到root目录下的mem.bin文件 从光盘拷贝iso镜像 dd if=/dev/cdrom of=/root/cd.iso 拷贝光盘数据到root文件夹下,并保存为cd.iso文件 销毁磁盘数据 dd if=/dev/urandom of=/dev/sda1 利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据。执行此操作以后,/dev/sda1将无法挂载,创建和拷贝操作无法执行。 得到最恰当的block size dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file dd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file dd if=/dev/zero bs=8192 count=125000 of=/root/1Gb.file 通过比较dd指令输出中所显示的命令执行时间,即可确定系统最佳的block size大小 测试硬盘读写速度 dd if=/root/1Gb.file bs=64k | dd of=/dev/null dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000 通过上两个命令输出的执行时间,可以计算出测试硬盘的读/写速度 修复硬盘 dd if=/dev/sda of=/dev/sda 当硬盘较长时间(比如1,2年)放置不使用后,磁盘上会产生消磁点。当磁头读到这些区域时会遇到困难,并可能导致I/O错误。当这种情况影响到硬盘的第一个扇区时,可能导致硬盘报废。上边的命令有可能使这些数据起死回生。且这个过程是安全,高效的。
原创文章,作者:yyw,如若转载,请注明出处:http://www.178linux.com/40807