掛載、卸載、free查看內存狀況、建立交換分區、迴環設備、dd命令、自動掛載、fuser

掛載、卸載

分區、格式化建立了文件系統後就能夠掛載了node

掛載:將新的文件系統關聯至當前根文件系統linux

卸載:將某文件系統與當前根文件系統的關聯關係移除ios

mount掛載

使用方法:緩存

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

umount卸載某文件系統

使用方法: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:顯示當前系統已掛載的設備及掛載點

用法:

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【卸載】

歡迎訪問原文博客:http://www.51aixue.cn/2017/04...

相關文章
相關標籤/搜索