分区、格式化建立了文件系统后就能够挂载了node
挂载:将新的文件系统关联至当前根文件系统linux
卸载:将某文件系统与当前根文件系统的关联关系移除ios
使用方法:缓存
mount 设备 挂载点bash
设备:能够是设备文件【如:/dev/sda5】、能够是卷标【如:LABEL=""】、或者是UUID【如:UUID=""】ide
挂载点:指定挂载的目录,该目录的要求是:没有被其余进程使用,而且原有的文件将会被隐藏oop
挂载的时候有两个目录/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目录,这就表明挂载成功了。spa
使用方法:code
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 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命令用来查看内存、缓冲区、缓存、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 /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分区用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
如今遇到须要增长swap分区,可是磁盘没有多余的空间来增长新的分区了,这个时候能够在已经存在的分区中经过软件模拟出一个新的分区,这种用软件模拟硬件的方式叫使用回环设备【本地回环...】
要模拟硬盘须要建立镜像文件,这时候用到了一个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
上面模拟的回环设备被交换分区swapon挂载使用了,mount -o loop也能够对普通文件看成循环设备挂载使用
mount -o loop /root/xxx.ios -o loop /media/ 【若是不使用-o loop 这个ios文件就被看成普通文件,不会让挂载的】
-a:启用全部定义在/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选项
验证进程正在使用的文件或套接字文件
例如:我刚刚挂载了一个设备,就是为了测试,这个设备刚刚挂上就被某个用户或某个进程使用了,这时候使用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...