日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

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

發布時間:2025/5/22 linux 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux umount swap,挂载、卸载、free查看内存情况、创建交换分区、回环设备、dd命令、自动挂载、fuser... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

掛載、卸載

分區、格式化創建了文件系統后就可以掛載了

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

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

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...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。