挂载、卸载

分区、格式化创建了文件系统后就可以挂载了

挂载:将新的文件系统关联至当前根文件系统

卸载:将某文件系统与当前根文件系统的关联关系移除

mount挂载

使用方法:

mount 设备 挂载点

设备:可以是设备文件【如:/dev/sda5】、可以是卷标【如:LABEL=""】、或者是UUID【如:UUID=""】

挂载点:指定挂载的目录,该目录的要求是:没有被其他进程使用,并且原有的文件将会被隐藏

挂载的时候有两个目录/media一般挂载移动便携式的设备,/mnt挂载额外的设备或者额外的分区

[root@localhost /]# ls

bin etc lost+found mnt proc selinux tmp

boot home media net root srv usr

dev lib misc opt sbin sys var

[root@localhost /]# mkdir /mnt/test

[root@localhost /]# mount /dev/sdb /mnt/test

mount: you must specify the filesystem type

[root@localhost /]# mount /dev/sdb1 /mnt/test

[root@localhost /]# ls -l /mnt/test

总用量 16

drwx------. 2 root root 16384 4月 24 18:29 lost+found

新挂载的文件系统里面有个last+found目录,这就代表挂载成功了。

umount卸载某文件系统

使用方法:

umount 设备、umount 挂载点

注意事项:卸载的设备没有被使用

[root@localhost /]# cd /mnt/test

[root@localhost test]# umount /dev/sdb^C

[root@localhost test]# umount /mnt/test

umount: /mnt/test: device is busy.

(In some cases useful info about processes that use

the device is found by lsof(8) or fuser(1))

[root@localhost ~]# cd ..

[root@localhost /]# umount /mnt/test

mount的其他选项

mount:显示当前系统已挂载的设备及挂载点

用法:

mount options [-o options] 设备 挂载点 ,在这-o options 代表的是功能选项,磁盘挂载时带有什么功能【比如.EXE文件是否挂载就执行,是否允许使用SUID..等等】

-a:挂载/etc/fstab文件中定义的所有文件系统

-n:默认情况下,mount命令每挂载一个设备,都会把设备挂载的信息保存至/etc/mtab文件:使用-n选项意味着挂载设备时,不把信息写入此文件【小型linux可以使用此选项】

-t FSTYPE:指定正在挂载设备上的文件系统类型,如果不指定mount会自动调用blkid命令获取对应的文件系统类型;

-r:只读挂载,挂载光盘时常用此选项

-w:读写挂载

-o:指定额外的挂载选项,也即指定文件系统启用的属性【remount重新挂载指定文件系统,ro也是可以挂载为只读】

[root@localhost dev]# mount /dev/sdb1 /mnt/test

[root@localhost dev]# mount【查看挂载的设备】

/dev/sda2 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,rootcontext="system_u:object_r:tmpfs_t:s0")

/dev/sda1 on /boot type ext4 (rw)

/dev/sda5 on /home type ext4 (rw)

none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

/dev/sdb1 on /mnt/test type ext2 (rw)【刚刚挂载的,默认为读写】

[root@localhost dev]# mount -o ro,remount /dev/sdb1【重新挂载为只读】

[root@localhost dev]# mount

/dev/sda2 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,rootcontext="system_u:object_r:tmpfs_t:s0")

/dev/sda1 on /boot type ext4 (rw)

/dev/sda5 on /home type ext4 (rw)

none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

/dev/sdb1 on /mnt/test type ext2 (ro)【只读】

free

free命令用来查看内存、缓冲区、缓存、swap的使用情况

缓冲区和缓存

缓冲区存的是源数据,缓存是数据。

我们的数据先是在缓冲区,当缓冲区不经常使用就放进了缓存。当数据取出的时候也先去经过缓冲区。

buffers存的是inode的对应文件的路径【要找某个数据先要找inode,所以就把不用inode先放在缓冲区】,cached存的inode对应的块,他们都是内存中的当我们关闭的时候cached就会保存进磁盘。这样通过buffers和cached能使CPU和内存I/O更快。

[root@localhost ~]# free -m【以M(兆)的方式显示】

total used free shared buffers cached

Mem: 1006 246 759 1 37 102

-/+ buffers/cache: 107 899

Swap: 2047 0 2047

在上面发现:246-107=37+102,这说明被使用的内存包括buffers和cached,-/+ buffers/cache的意思就是缓冲区和缓存被减去后等于真正的使用的内存;同理 free也是这意思899-759=1+37+102。

创建交换分区

创建一个新的分区

下面是执行的操作,具体创建分区的知识在前面的文章有记录

[root@localhost ~]# fdisk /dev/sdb

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to

switch off the mode (command 'c') and change display units to

sectors (command 'u').

Command (m for help): p【查看现有的分区】

Disk /dev/sdb: 10.7 GB, 10737418240 bytes

255 heads, 63 sectors/track, 1305 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0xd25c91c2

Device Boot Start End Blocks Id System

/dev/sdb1 1 200 1606468+ 83 Linux

/dev/sdb2 201 462 2104515 83 Linux

Command (m for help): n【创建一个新的分区】

Command action

e extended

p primary partition (1-4)

p

Partition number (1-4): 3【分区编号3】

First cylinder (463-1305, default 463):

Using default value 463

Last cylinder, +cylinders or +size{K,M,G} (463-1305, default 1305): +1G

Command (m for help): t【改变分区的类型默认是Linux】

Partition number (1-4): 3

Hex code (type L to list codes): L【查看有哪些类型,发现82是交换分区】

0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris

1 FAT12 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT-

2 XENIX root 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-

3 XENIX usr 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT-

...

...

Hex code (type L to list codes): 82【指定为82】

Changed system type of partition 3 to 82 (Linux swap / Solaris)

Command (m for help): p【打印看看】

Disk /dev/sdb: 10.7 GB, 10737418240 bytes

255 heads, 63 sectors/track, 1305 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0xd25c91c2

Device Boot Start End Blocks Id System

/dev/sdb1 1 200 1606468+ 83 Linux

/dev/sdb2 201 462 2104515 83 Linux

/dev/sdb3 463 594 1060290 82 Linux swap / Solaris【swap类型了】

[root@localhost ~]# partprobe /dev/sdb【让内核识别】

上面的调整系统类型也可以使用fdisk命令,调整为82

创建文件系统

上面只是创建了一个分区,还需要创建文件系统,但是创建文件系统不是用mkfs命令,有单独的mkswap命令

mkswap

使用方法:

mkswap /dev/sdb3

L LABEL:指定卷标

[root@localhost ~]# mkswap /dev/sdb3

Setting up swapspace version 1, size = 1060284 KiB

no label, UUID=4a4ecd7c-9106-4fd5-a093-53fac01c1425

启用swap

按照平时分区的创建到使用,最后需要挂载,但是swap分区用swapon和swapoff

[root@localhost ~]# swapon /dev/sdb3

[root@localhost ~]# free -m

total used free shared buffers cached

Mem: 1006 246 759 1 37 102

-/+ buffers/cache: 106 899

Swap: 3083 0 3083

[root@localhost ~]# swapoff /dev/sdb3

[root@localhost ~]# free -m

total used free shared buffers cached

Mem: 1006 246 759 1 37 102

-/+ buffers/cache: 106 900

Swap: 2047 0 2047

回环设备loopback

现在遇到需要增加swap分区,但是磁盘没有多余的空间来增加新的分区了,这个时候可以在已经存在的分区中通过软件模拟出一个新的分区,这种用软件模拟硬件的方式叫使用回环设备【本地回环...】

要模拟硬盘需要创建镜像文件,这时候用到了一个dd的命令

dd命令

dd命令也是可以进行复制的,但是它与copy的区别就是,copy是文件层次的,它通过vfs把文件从一个目录复制到另一个目录;而dd复制的是底层的数据流,不用经过vfs,可以单独指定复制文件的多少字节。利用这一点可以刻录光盘,cat命令的重定向也可以刻录光盘。

使用方法:

if=数据来源 of 数据存储目标 bs=1 count=2 seek=#【跳过多少空间大小】

dd if=/dev/sda of=/mnt/usb/mbr.backup bs=512 count=1【备份MBR】

dd if=/mnt/usb/mbr.backup of=/dev/sda bs=512 count=1【还原MBR】

cat /dev/cdrom > /root/rehl5.ios【cat命令也可以制作ios镜像】

dd if=/dev/zero of=/var/swapfile bs=1M count=1024【这就制作出了一个1G的文件,zero和/dev/null刚好相反,/dev/zero称为泡泡设备,不停的向外面吐0要多少有多少,/dev/null有多少吸多少】

[root@localhost ~]# cd /tmp

[root@localhost tmp]# touch a.txt

[root@localhost tmp]# dd if=/tmp/a.txt of=~/a.txt

记录了0+0 的读入

记录了0+0 的写出

0字节(0 B)已复制,0.024979 秒,0.0 kB/秒

[root@localhost tmp]# ls ~

anaconda-ks.cfg a.txt install.log install.log.syslog

创建一个模拟的设备【我这空间不足,所以是685M】

[root@localhost tmp]# dd if=/dev/zero of=/var/swapfile bs=1M count=1024

dd: 正在写入"/var/swapfile": 设备上没有空间

记录了653+0 的读入

记录了652+0 的写出

684630016字节(685 MB)已复制,123.871 秒,5.5 MB/秒

[root@localhost tmp]# mkswap /var/swapfile

mkswap: /var/swapfile: warning: don't erase bootbits sectors

on whole disk. Use -f to force.

Setting up swapspace version 1, size = 668580 KiB

no label, UUID=00bf638a-45e0-4d4e-831b-81c78e438409

[root@localhost tmp]# swapon /var/swapfile

[root@localhost tmp]# ls -lh /var/swapfile

-rw-r--r--. 1 root root 653M 4月 25 20:34 /var/swapfile

[root@localhost tmp]# free -m

total used free shared buffers cached

Mem: 1006 911 94 1 38 756

-/+ buffers/cache: 117 889

Swap: 2700 0 2700

dd if=/dev/zero of=/var/swapfile bs=1M count=1 seek=1023 看上去是1G实际就1M,而且里面可以分区,我们的虚拟机就是这个技术,开始很小当在里面存东西时开始变大,但是不会超过1G

[root@localhost tmp]# dd if=/dev/zero of=/var/swapfile bs=1M count=1 seek=1023

记录了1+0 的读入

记录了1+0 的写出

1048576字节(1.0 MB)已复制,0.0201953 秒,51.9 MB/秒

[root@localhost tmp]# ls -lh /var/swapfile

-rw-r--r--. 1 root root 1.0G 4月 25 20:51 /var/swapfile

[root@localhost tmp]# du -lh /var/swapfile

1.0M /var/swapfile

补充知识

mount挂载镜像文件

上面模拟的回环设备被交换分区swapon挂载使用了,mount -o loop也可以对普通文件当作循环设备挂载使用

mount -o loop /root/xxx.ios -o loop /media/ 【如果不使用-o loop 这个ios文件就被当作普通文件,不会让挂载的】

swapon -a

-a:启用所有定义在/etc/fstab文件中的交换设备

自动挂载/etc/fstab

文件系统的配置文件/etc/fstab,在这个文件中的设备,在开机初始化的时候会被自动挂载

[root@localhost ~]# cat /etc/fstab

#

# /etc/fstab

# Created by anaconda on Sun Apr 16 23:17:03 2017

#

# 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=642e838a-71a8-429d-bef0-6345823e176f / ext4 defaults 1 1

UUID=9f56821a-81ac-4f4a-82a4-194331878494 /boot ext4 defaults 1 2

UUID=5c7e35c4-b59e-41ec-88d7-71790848c4ec /home ext4 defaults 1 2

UUID=cac77075-c514-4aac-af26-4cfd5af900e0 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

第一个字段是要挂载的设备【UUID,设备路径,卷标】,第二个字段是挂载点,第三个字段是文件系统类型,第四个字段是mount -o的功能选项,第五个字段是转储频率【每多少天一次备份,0是不备份,1是每天一次备份,现在用的很少,常使用备份软件】,最后一个字段是文件系统检测次序,开机的时候谁率先检查一般根为1,其他的可以同时为2,同时为3,0表示不检查

mount -a 是挂载这个表的所有设备

[root@localhost ~]# vi /etc/fstab【添加一个设备/dev/sdb1】

[root@localhost ~]# cat /etc/fstab

#

# /etc/fstab

# Created by anaconda on Sun Apr 16 23:17:03 2017

#

# 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=642e838a-71a8-429d-bef0-6345823e176f / ext4 defaults 1 1

UUID=9f56821a-81ac-4f4a-82a4-194331878494 /boot ext4 defaults 1 2

UUID=5c7e35c4-b59e-41ec-88d7-71790848c4ec /home ext4 defaults 1 2

UUID=cac77075-c514-4aac-af26-4cfd5af900e0 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/sdb1 /mnt/test ext2 defaults 0 0【添加一行】

[root@localhost ~]# mount -a【挂载/etc/fstab所有设备】

[root@localhost ~]# mount【查看已经挂载的设备或者cat /etc/mtab】

/dev/sda2 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,rootcontext="system_u:object_r:tmpfs_t:s0")

/dev/sda1 on /boot type ext4 (rw)

/dev/sda5 on /home type ext4 (rw)

none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

/dev/sdb1 on /mnt/test type ext2 (rw)

[root@localhost ~]# ls -l /mnt/test【lost+found代表挂载成功】

总用量 16

drwx------. 2 root root 16384 4月 24 18:29 lost+found

我们每挂载一个设备,都会记录在/etc/mtab下,不想让它记录可以使用mount -n选项

fuser

验证进程正在使用的文件或套接字文件

例如:我刚刚挂载了一个设备,就是为了测试,这个设备刚刚挂上就被某个用户或某个进程使用了,这时候使用umount无法卸载,可以使用fuser查看哪些用户或进程正在使用,并杀死进程然后umount卸载

-v:查看某文件上正在运行的进程

-k:杀死那个进程【杀死的只是一个文件,还需要-m选项】

-m:所有使用该挂载点的进程

fuser -m /dev/sda1 #显示所有使用sda1的进程

fuser -km /dev/sda1 #杀死所有使用sda1的进程

[jiakang@localhost root]$ cd /mnt/test【我用另一个用户进入该分区】

[root@localhost ~]# fuser -v /mnt/test【查看】

用户 进程号 权限 命令

/mnt/test: jiakang 3468 ..c.. bash

[root@localhost ~]# fuser -km /mnt/test 【杀死进程】

/mnt/test: 3468c

[jiakang@localhost test]$ 已杀死 (core dumped)【jiakang用户被杀死,剔除bash进程】

[root@localhost ~]# umount /mnt/test【卸载】

linux umount swap,挂载、卸载、free查看内存情况、创建交换分区、回环设备、dd命令、自动挂载、fuser...相关推荐

  1. 每天一个知识点linux(八)手动创建交换分区

    通常在安装linux系统时,会要求我们创建交换分区,在我们选择手动分区的时候有些人可能没有设置交换分区,而导致以后的使用出现一些问题,此时我们可以选择新建一个交换文件或交换分区来解决这个问题,这里主要 ...

  2. Linux虚拟内存介绍,以及malloc_stats和malloc_info 监控查看内存情况

    Linux虚拟内存介绍,以及malloc_stats和malloc_info 监控查看内存情况 zzhongcy 2019-04-09 10:33:08 3106 已收藏 3 分类专栏: Linux ...

  3. Linux运维:CentOS7下查看内存占用

    文章目录 查看主机信息 查看操作系统信息 查看Linux系统版本 查看物理CPU个数和型号 查看单个物理CPU核心数 查看逻辑CPU个数 查看内存信息 查看内存情况 查看内存剩余情况 内存使用排序取前 ...

  4. linux 增加回环设备,linux命令练习:mount fdisk swap dd创建本地回环设备

    练习一 1.创建一个1G的分区,文件系统为ext4,卷标为MYDATA,块大小为1024,预留管理空间为磁盘 分区的3%,要求开机后制动挂载至/data目录,并且自动挂载的设备要使用卷标进行引用. f ...

  5. 【转载】Linux命令-自动挂载文件/etc/fstab功能详解[转]

    博客园 首页 新随笔 联系 订阅 管理 随笔 - 322  文章 - 0  评论 - 19 Linux命令-自动挂载文件/etc/fstab功能详解[转]     一./etc/fstab文件的作用 ...

  6. linux创建交换分区设置_如何在Linux上创建交换文件

    linux创建交换分区设置 zentilia/Shutterstock.com zentilia / Shutterstock.com Add swap space to a Linux comput ...

  7. 2020-12-26 工作常用 Linux 操作:磁盘卸载、 自动化挂盘脚本 、磁盘分区合并、ansible、git 设置相关

    [工作常用 Linux 操作:磁盘卸载. 自动化挂盘脚本 .磁盘多个分区合并.ansible .git 设置相关] 1.查看 欧拉系统 的版本号:rpm -q --provides euler0rel ...

  8. linux查看进程运行日志文件,【Linux】常用指令、ps查看进程、kill杀进程、启动停止tomcat命令、查看日志、查看端口、find查找文件...

    1.说出 10 个 linux 常用的指令 1) ls 查看目录中的文件 2)cd /home 进入 '/ home' 目录:cd .. 返回上一级目录:cd ../.. 返回上两级目录 3)mkdi ...

  9. Linux命令-自动挂载文件/etc/fstab功能详解

    一./etc/fstab文件的作用 磁盘被手动挂载之后都必须把挂载信息写入/etc/fstab这个文件中,否则下次开机启动时仍然需要重新挂载. 系统开机时会主动读取/etc/fstab这个文件中的内容 ...

最新文章

  1. CSS学习笔记--CSS语法与选择器
  2. phpcms v9 打开网站特别慢 增加数据库缓存方法
  3. ubuntu永久修改主机名
  4. iOS实现书架布局样式【一些电子书的首页】
  5. bzoj 1263: [SCOI2006]整数划分
  6. metacube 链接 mysql_2019 年 5月 随笔档案 - rgqancy - 博客园
  7. TimeLine下载地址
  8. 十二届蓝桥杯c++A组答案
  9. php流水系统,php流水账txt数据库版
  10. Axure 进阶教程
  11. 安全认证之JWT令牌
  12. 北漂18届三本毕业生从实习到正式工作的前端开发求职经历
  13. Redis 6.2的过期删除策略源码分析(定期删除)
  14. vc使用默认的浏览器打开网页
  15. 【vue】vue中设置路径别名
  16. Windows程序内存泄漏(Memory Leak)分析之UMDH
  17. python实现凤凰新闻监控
  18. 小白对于linux的命令的一些基础认识
  19. Antd 的 Upload 上传组件 uploading 状态踩坑记
  20. Makefile 出现./simv up to date.如何解决?

热门文章

  1. 幻灯片:Why Java Sucks and C# Rocks
  2. 一条批处理语句ping局域网内的所有机器
  3. git的操作说明超详细
  4. JAVA 将图片转换为Base64编码
  5. 知乎完成 2.7 亿美元 E 轮融资 加速建设全民知识内容平台(附周源全员邮件全文)...
  6. 阿里分布式服务框架Dubbo的架构总结
  7. Java反斜线(\)路径与转义字符的小坑
  8. gitlab的升级【二】旧数据的备份和新数据的恢复
  9. JavaScript思维导图之数组
  10. 实现做出html的上标以及下标