挂载
挂载是指将一个设备(通常是存储设备)挂接到一个已存在的目录上。 我们要访问存储设备中的文件,必须将文件所在的分区(已有文件系统)挂载到一个已存在的目录上, 然后通过访问这个目录来访问存储设备。
挂载条件
1、挂载点必须是一个目录。
2、一个分区挂载在一个已存在的目录上,这个目录可以不为空,但挂载后这个目录下以前的内容将隐藏不可用。对于其他操作系统建立的文件系统的挂载也是这样。
挂载方法:mount DEVICE MOUNT_POINT
mount:显示当前已挂载的所有设备
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:挂载点
事先存在且没有进程访问的目录;建议使用空目录
进程正在使用中的设备无法被卸载
-t vsftype:指定要挂载的设备上的文件系统类型常用的文件系统有ext2, ext3, ext4 iso9660, msdos,ntfs
一般它会自动识别,但如果要写入/etc/fstab中就要指定文件系统了
-r: readonly,只读挂载 -o ro 同义
-w: read and write, 读写挂载 -o rw 同义
-n: 不更新/etc/mtab,
-a:自动挂载所有支持自动挂载的设备定义在了/etc/fstab文件中,且挂载选项中有auto功能
-L 'LABEL': 以卷标指定挂载设备
-U 'UUID': 以UUID指定要挂载的设备
-B, –bind: 绑定目录到另一个目录上
-o options:(挂载文件系统的选项),多个选项使用逗号分隔
async:异步模式
sync:同步模式,内存更改时,同时写磁盘
atime/noatime:访问时间戳,包含目录和文件
diratime/nodiratime:目录的访问时间戳
auto/noauto:是否支持自动挂载==是否支持-a选项
exec/noexec:是否支持将文件系统上运行应用程序。默认为exec
dev/nodev:是否支持在此文件系统上使用设备文件
suid/nosuid:不否支持suid和sgid权限
remount:重新挂载
ro:只读
rw:读写
user/nouser:是否允许普通用户挂载此设备,默认管理员才能挂载
acl:启用此文件系统上的acl功能
Defaults:相当于rw, suid, dev, exec, auto, nouser, async
[root@Cloud /]#mkdir /media/sdb1 #创建空目当挂载点,挂载点一般在/media和/mnt目录 [root@Cloud /]#mount /dev/sdb1 /media/sdb1 #把/dev/sdb1挂载到/media/sdb1上 [root@Cloud /]#cd /media/sdb1 [root@Cloud /media/sdb1]#ls #挂载成功会创建lost+found目录 lost+found [root@Cloud /media/sdb1]#mkdir abc #使用/dev/sdb1分区 [root@Cloud /media/sdb1]#touch file #使用/dev/sdb1分区 [root@Cloud /media/sdb1]#ls#显示创建成功 abc file lost+found [root@Cloud /media/sdb1]#ll total 20 drwxr-xr-x 2 root root 4096 Jul 31 03:15 abc -rw-r--r-- 1 root root 0 Jul 31 03:15 file drwx------ 2 root root 16384 Jul 31 00:47 lost+found [root@Cloud /media/sdb1]#mkdir /media/sdb2 #创建空目录来挂载 [root@Cloud /media/sdb1]#mount -r /dev/sdb2 /media/sdb2 #只读挂载,多用来挂载光盘 [root@Cloud /media/sdb1]#cd ../sdb2 [root@Cloud /media/sdb2]#ls lost+found [root@Cloud /media/sdb2]#touch file #无法创建! touch: cannot touch `file': Read-only file system
一个使用技巧:
可以实现将目录绑定至另一个目录上,作为其临时访问入口;
[root@localhost /]#mkdir mountpoint #创建挂载点 [root@localhost /]#ll mountpoint #创建成功 total 0 [root@localhost /]#mount --bind /home /mountpoint #绑定目录 [root@localhost /]#ll /home/ /mountpoint/ #查看显示bind成功,大小一样 /home/: total 0 drwx------ 5 mage mage 121 Sep 1 11:45 mage drwx------. 3 mageedu mageedu 74 Jul 26 16:09 mageedu drwx------ 3 magge magge 74 Sep 1 13:37 magge drwx------ 3 maggea maggea 74 Sep 1 13:37 maggea drwx------ 3 user1 user1 74 Aug 30 14:54 user1 /mountpoint/: total 0 drwx------ 5 mage mage 121 Sep 1 11:45 mage drwx------. 3 mageedu mageedu 74 Jul 26 16:09 mageedu drwx------ 3 magge magge 74 Sep 1 13:37 magge drwx------ 3 maggea maggea 74 Sep 1 13:37 maggea drwx------ 3 user1 user1 74 Aug 30 14:54 user1
查看挂载情况:
#findmnt MOUNT_POINT
[root@Cloud /media/sdb2]#findmnt /media/sdb1 TARGET SOURCE FSTYPE OPTIONS /media/sdb1 /dev/sdb1 ext3 rw,relatime,errors=continue,barrier=1,data
查看正在访问指定文件系统的进程:
#lsof MOUNT_POINT
#fuser -v MOUNT_POINT
终止所有在正访问指定的文件系统的进程:
[
root@Cloud /media/sdb1]#lsof /dev/sdb1 #命令要在挂载点目录下使用 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME bash 2222 root cwd DIR 8,17 4096 2 /media/sdb1 lsof 2658 root cwd DIR 8,17 4096 2 /media/sdb1 lsof 2659 root cwd DIR 8,17 4096 2 /media/sdb1
[root@Cloud /media/sdb1]#fuser -v /media/sdb1 #同上 USER PID ACCESS COMMAND /media/sdb1: root 2222 ..c.. bash
# fuser -km MOUNT_POINT
终止所有在正访问指定的文件系统的进程
[root@Cloud /media/sdb1]#fuser -km /media/sdb1 #结束进程,并断开连接 /media/sdb1: 2222c
卸载:
# umount DEVICE
# umount MOUNT_POINT
注:正在被进程访问的挂载点无法被卸载
[root@Cloud ~]#mount 查看挂载 /dev/mapper/vg0-root on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw) /dev/sda1 on /boot type ext4 (rw) /dev/mapper/vg0-usr on /usr type ext4 (rw) /dev/mapper/vg0-var on /var type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) /dev/sdb1 on /media/sdb1 type ext3 (rw) #/dev/sdb1已挂载 /dev/sdb2 on /media/sdb2 type ext4 (ro) #/dev/sdb2已挂载 [root@Cloud ~]#umount /dev/sdb1 #卸载 指定挂载设备的方式 [root@Cloud ~]#umount /media/sdb2 #卸载 指定挂载点的方式 [root@Cloud ~]#mount /dev/mapper/vg0-root on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw) /dev/sda1 on /boot type ext4 (rw) /dev/mapper/vg0-usr on /usr type ext4 (rw) /dev/mapper/vg0-var on /var type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) #已取消挂载!
查看内核追踪到的已挂载的所有设备:
cat /proc/mounts
[root@Cloud /media/sdb2]#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=938840k,nr_inodes=234710,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/mapper/vg0-root / ext4 rw,relatime,barrier=1,data=ordered 0 0 /proc/bus/usb /proc/bus/usb usbfs rw,relatime 0 0 /dev/sda1 /boot ext4 rw,relatime,barrier=1,data=ordered 0 0 /dev/mapper/vg0-usr /usr ext4 rw,relatime,barrier=1,data=ordered 0 0 /dev/mapper/vg0-var /var ext4 rw,relatime,barrier=1,data=ordered 0 0 none /proc/sys/fs/binfmt_misc binfmt_misc rw,relatime 0 0 /etc/auto.misc /misc autofs rw,relatime,fd=7,pgrp=1932,timeout=300,minproto=5,maxproto=5,indirect 0 0 -hosts /net autofs rw,relatime,fd=13,pgrp=1932,timeout=300,minproto=5,maxproto=5,indirect 0 0 /dev/sdb1 /media/sdb1 ext3 rw,relatime,errors=continue,barrier=1,data=ordered 0 0 /dev/sdb2 /media/sdb2 ext4 ro,relatime,barrier=1,data=ordered 0 0
[root@Cloud /media/sdb2]#mount #查看当前系统挂载的所有挂载信息 /dev/mapper/vg0-root on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw) /dev/sda1 on /boot type ext4 (rw) /dev/mapper/vg0-usr on /usr type ext4 (rw) /dev/mapper/vg0-var on /var type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) /dev/sdb1 on /media/sdb1 type ext3 (rw) /dev/sdb2 on /media/sdb2 type ext4 (ro)
[root@Cloud /media/sdb2]#cat /etc/mtab #查看/etc/fstab中的挂载信息 /dev/mapper/vg0-root / ext4 rw 0 0 proc /proc proc rw 0 0 sysfs /sys sysfs rw 0 0 devpts /dev/pts devpts rw,gid=5,mode=620 0 0 tmpfs /dev/shm tmpfs rw 0 0 /dev/sda1 /boot ext4 rw 0 0 /dev/mapper/vg0-usr /usr ext4 rw 0 0 /dev/mapper/vg0-var /var ext4 rw 0 0 none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0 /dev/sdb1 /media/sdb1 ext3 rw 0 0 /dev/sdb2 /media/sdb2 ext4 ro 0 0
除了手动挂载还可以自动挂载 ,只要把你需要挂载的路径写入/etc/fstab中再使用mount -a 就可以直接挂载上。
[root@Cloud ~]#vim /etc/fstab
/dev/mapper/vg0-root / ext4 defaults 1 1
UUID=86a42a62-9313-4445-a9d3-89017b8b3eee /boot ext4 defaults 1 2
/dev/mapper/vg0-usr /usr ext4 defaults 1 2
/dev/mapper/vg0-var /var ext4 defaults 1 2
/dev/mapper/vg0-swap swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/cdrom /media iso9660 defaults 0 0
/etc/fstab 每行定义一个要挂载的文件系统;
要挂载的设备或伪文件系统
挂载点
文件系统类型
挂载选项
转储频率
自检次序
要挂载的设备或伪文件系统:
设备文件、LABEL(LABEL="")、UUID(UUID="")、伪文件系统名称(proc,
sysfs)
挂载选项: defaults默认权限有:rw, suid, dev, exec, auto, nouser, and async.
转储频率: 0:不做备份
1:每天转储
2:每隔一天转储
自检次序: 0:不自检
1:首先自检;一般只有rootfs才用1
[root@localhost /run/user/0]#vim /etc/fstab #自动挂载 权限以,分隔 # /etc/fstab # Created by anaconda on Tue Jul 26 08:01:18 2016 # # 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 # UUID=62e9e57b-3452-4314-8567-85566ca642dc / xfs defaults 0 0 UUID=bb3ff6b4-e9c3-4090-b968-5affdb57782e /boot xfs defaults 0 0 UUID=366cf2a1-0923-4d99-bc20-35d93082ac3a /usr xfs defaults 0 0 UUID=58be63b5-585a-49e7-a8c2-b9b49cf44860 swap swap defaults 0 0 LABEL=MYDATA /MYDATA ext4 defaults,noexec,noatime 0 0 #以,分隔 /dev/sdb2 swap swap defaults 0 0
交换分区
交换分区是系统RAM的补充
基本设置包括:
•创建交换分区或者文件
•使用mkswap写入特殊签名
•在/etc/fstab文件中添加适当的条目
•使用swapon -a 激活交换空间
启用:swapon
swapon[OPTION]… [DEVICE]
-a:激活所有的交换分区;
-p PRIORITY:指定优先级
/etc/fstab:pri=value
禁用:swapoff[OPTION]… [DEVICE]
[root@localhost /]#blkid /dev/sdb2 #显示/dev/sdb2为swap文件系统 /dev/sdb2: UUID="f9d7f3dd-8d0e-484f-b2b0-b2ffad755b31" TYPE="swap" [root@localhost /]#free -h #现在的swap分区大小为2G total used free shared buff/cache available Mem: 1.9G 119M 1.7G 13M 152M 1.7G Swap: 2.0G 0B 2.0G [root@localhost /]#swapon /dev/sdb2 #启用swap [root@localhost /]#free -h #成功咯 total used free shared buff/cache available Mem: 1.9G 119M 1.7G 13M 152M 1.7G Swap: 3.0G 0B 3.0G
关于查看磁盘和分区命令 free 、du、 df、
内存空间使用状态:
free [OPTION]
-m: 以MB为单位
-g: 以GB为单位
-h:人性化显示
[root@localhost /]#free #默认显示 total used free shared buff/cache available Mem: 2033556 122220 1754992 13356 156344 1757476 Swap: 3146744 0 3146744 [root@localhost /]#free -h #人性化显示 total used free shared buff/cache available Mem: 1.9G 119M 1.7G 13M 152M 1.7G Swap: 3.0G 0B 3.0G [root@localhost /]#free -m #以M单位显示 total used free shared buff/cache available Mem: 1985 119 1713 13 152 1716 Swap: 3072 0 3072
文件系统空间占用等信息的查看工具:
df[OPTION]… [FILE]…
-H 以1000计算
-T 文件系统类型
-h: 人性化显示
-i:inode计数
-P: 以Posix兼容的格式输出
[root@localhost /]#df 默认输出
Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda2 41922560 221652 41700908 1% / devtmpfs 1002256 0 1002256 0% /dev tmpfs 1016776 0 1016776 0% /dev/shm tmpfs 1016776 13344 1003432 2% /run tmpfs 1016776 0 1016776 0% /sys/fs/cgroup /dev/sda3 20961280 2692500 18268780 13% /usr /dev/sdb1 10254840 12310 10024624 1% /MYDATA /dev/sda1 496300 140496 355804 29% /boot tmpfs 203356 4 203352 1% /run/user/0 [root@localhost /]#df -i #显示inode节点的使用率 Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda2 41943040 6582 41936458 1% / devtmpfs 250564 399 250165 1% /dev tmpfs 254194 1 254193 1% /dev/shm tmpfs 254194 522 253672 1% /run tmpfs 254194 13 254181 1% /sys/fs/cgroup /dev/sda3 20971520 88746 20882774 1% /usr /dev/sdb1 655360 12 655348 1% /MYDATA /dev/sda1 499712 329 499383 1% /boot tmpfs 254194 2 254192 1% /run/user/0 [root@localhost /]#df -h #人性化显示 Filesystem Size Used Avail Use% Mounted on /dev/sda2 40G 217M 40G 1% / devtmpfs 979M 0 979M 0% /dev tmpfs 993M 0 993M 0% /dev/shm tmpfs 993M 14M 980M 2% /run tmpfs 993M 0 993M 0% /sys/fs/cgroup /dev/sda3 20G 2.6G 18G 13% /usr /dev/sdb1 9.8G 13M 9.6G 1% /MYDATA /dev/sda1 485M 138M 348M 29% /boot tmpfs 199M 4.0K 199M 1% /run/user/0
查看某目录总体空间占用状态:
du [OPTION]… DIR
-h: human-readable :人性化咯
-s:summary:总输出
[root@localhost ~]#du -h /boot #人性化显示数据带下 4.0K/boot/grub 0/boot/grub2/themes/system 0/boot/grub2/themes 2.4M/boot/grub2/i386-pc 3.3M/boot/grub2/locale 2.5M/boot/grub2/fonts 8.1M/boot/grub2 113M/boot [root@localhost ~]#du -sh /boot #目录总大小,不展开 113M/boot
原创文章,作者:ladsdm,如若转载,请注明出处:http://www.178linux.com/43832