挂载、卸载

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

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

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

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 usethe 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/sdbWARNING: DOS-compatible mode is deprecated. It's strongly recommended toswitch off the mode (command 'c') and change display units tosectors (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: 0xd25c91c2Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         200     1606468+  83  Linux
/dev/sdb2             201         462     2104515   83  LinuxCommand (m for help): n【创建一个新的分区】
Command actione   extendedp   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): +1GCommand (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: 0xd25c91c2Device 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 -mtotal       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 -mtotal       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 sectorson 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 -mtotal       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【卸载】

欢迎访问原文博客:http://www.51aixue.cn/2017/04...

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

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

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

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

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

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

    挂载.卸载 分区.格式化创建了文件系统后就可以挂载了 挂载:将新的文件系统关联至当前根文件系统 卸载:将某文件系统与当前根文件系统的关联关系移除 mount挂载 使用方法: mount 设备 挂载点 ...

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

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

  5. ubuntu 修改或创建交换分区的大小

    第一:查看当前空间大小:        free -m                  total       used       free     shared    buffers     c ...

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

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

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

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

  8. linux创建交换分区 开机自动生肖,centos创建交换分区并自动挂载

    一.先创建一个分区 [root@magedu ~]# fdisk /dev/sdb Device contains neither a valid DOS partition table, nor S ...

  9. mkswap,swapon, swapoff命令:创建交换分区

    linux支持虚拟内存,用作虚拟内存的硬盘部分被称为交互空间(swap space),虚拟内存是指使用磁盘当作内存的扩展,这样可用内存的大小就相应的增大了.内核会将暂时不用的内存块的内容写到硬盘上,从 ...

  10. 超过2t硬盘分区_磁盘挂载问题:Fdisk最大只能创建2T分区的盘,超过2T使用parted...

    需求说明: 云服务器上买了一块8T的磁盘,准备挂载到服务器上的/data目录下. parted命令说明 # parted /dev/vdb 对/dev/sdb进行分区或管理操作 parted创建分区里 ...

最新文章

  1. V4L2获取usb视频流测试代码
  2. CentOS6.5+puppet3.7.3 安装、配置及测试
  3. 探索 MongoDB--转
  4. educational round 前缀和_总结分析634个以re为前缀的单词得出了re为前缀组合单词意思规律
  5. 计算机体系结构 -- 第一章3 -- 设计的定量4个原则
  6. 采样次数不同平均值不一样_网络推广采取的方式不同,效果也不一样
  7. 凸优化问题中的Bregman迭代算法
  8. 第四次博客作业:bookstore缺陷报告
  9. vs2015ef链接mysql_【转载】VS2015 + EF6连接MYSQL5.6
  10. C与C++接口相互调用
  11. c语言 directx,【DirectX 8.1官方正式版】
  12. 地铁服务器的系统,地铁综合监控系统
  13. IEEE会议论文批量下载的方法
  14. [经典进程同步问题]哲学家思考
  15. 23种PHP开发工具PHP IDE集合
  16. iWork8删除Android分区,摆脱安卓,释放空间——iwork1x双系统变win10单系统教程
  17. 彻底清除SMSS.EXE病毒
  18. Composer开启多线程组件改变composer缓慢问题
  19. 使用Qt开发的软件一览
  20. 实验室管理相关系统概念

热门文章

  1. 安装github for windows问题解决
  2. android无法创建AVD了?
  3. DevExpress之TreeList绑定复杂数据类型
  4. Java容器Set接口
  5. JMeter接口测试中,响应数据中文显示乱码的处理方法(转)
  6. Hive静态分区和动态分区
  7. vmware centos6.4挂载ntfs移动硬盘
  8. halcon学习笔记——(6)单摄像机标定
  9. Hibernate获取'上一条'和'下一条'记录
  10. 第二篇: Silverlight -- 下载与安装