Linux 磁碟掛載和swap空間管理

背對背依靠 發表於 2022-07-02
Linux

掛載:把指定的裝置和根下面的某個資料夾建立關聯

解除安裝:解除兩者關係的過程

掛載檔案系統:mount

格式:mount device mountpoint --- mount 裝置名 掛載點

mountpoint:掛載點目錄必須事先存在,建議使用空目錄

選項:

  • -t fstype:指定檔案系統型別,比如ext4

  • -r readonly,只讀掛載

  • -w read and write, 讀寫掛載,此為預設設定,可省略

  • -n 不更新/etc/mtab,mount不可見

  • -a 自動掛載所有支援自動掛載的裝置(定義在了/etc/fstab檔案中,且掛載選項中有auto功能)

  • -o options:(掛載檔案系統的選項),多個選項使用逗號分隔

# async   非同步模式,記憶體更改時,寫入快取區buffer,過一段時間再寫到磁碟中,效率高,但不安全
# sync    同步模式,記憶體更改時,同時寫磁碟,安全,但效率低下
# remount 重新掛載(相當於umount後再mount)
# ro/rw   只讀、讀寫
# defaults(預設掛載) 相當於rw, suid, dev, exec, auto, nouser, async

掛載規則:

  • 一個掛載點同一時間只能掛載一個裝置,如果掛載了多個裝置就只顯示最後一個裝置

  • 一個裝置可以掛載到多個掛載點

  • 掛載點通常是空的目錄檔案

檢視掛載的裝置:

#通過檢視/etc/mtab檔案顯示當前已掛載的所有裝置
mount
#檢視核心追蹤到的已掛載的所有裝置
cat /proc/mounts

檢視掛載點情況

findmnt   MOUNT_POINT|device
#可以用來判斷某個資料夾是不是掛載點,如果是會顯示對應的資料資訊

檢視正在訪問指定檔案系統的程式

lsof MOUNT_POINT ---也可以用來檢視某個掛載點是否被別人使用
fuser -v MOUNT_POINT -- 檢視是誰在使用

終止所有在正訪問指定的檔案系統的程式

fuser -km MOUNT_POINT

持久掛載(重啟電腦還存在)

將掛載儲存到 /etc/fstab 中可以下次開機時,自動啟用掛載
使用man 5 fstab 檢視/etc/fstab配置檔案格式

配置檔案格式:

要掛載的檔案系統 掛載點 檔案系統型別 掛載屬性 備份頻率 sck檢查的檔案系統的順序

  • 要掛載的檔案系統:可以用裝置名、uuid、卷標
    檢視uuid: blkid

  • 掛載點:必須是事先存在的目錄

  • 掛載屬性:defaults ,acl,bind

  • 備份頻率(一般用不上):0:不做備份 1:每天轉儲 2:每隔一天轉儲

  • 檔案系統檢查的次序:開機檢測檔案系統的過程。其中允許的數字是0 1 2
    0:不自檢 ,1:首先自檢;一般只有rootfs才用 2:非rootfs使用

解除安裝檔案系統:umount

umount 裝置名或掛載點

處理交換檔案和分割槽

swap:是一種特殊的檔案系統,叫交換檔案系統。作用是緩解記憶體不足的情況。拿硬碟的分割槽來模擬記憶體,把記憶體中暫時不用的資料匯入swap硬碟分割槽中,給記憶體騰出空間。利用硬碟來模擬記憶體.
副作用:硬碟速度沒有記憶體的速度快,所以會降低速度。

swap空間分配原則:

記憶體 swap
<=2G swap就是記憶體的兩倍(4G)
2-8G swap等於記憶體大小(2-8G)
8-64G swap是記憶體的0.5倍(4-32G)
>64G swap選擇4G左右

交換空間swap實現過程:

1. 建立交換分割槽或者檔案 -- fdisk

2. 使用mkswap寫入特殊簽名 -- maswap 分割槽

3. 在/etc/fstab檔案中新增適當的條目 --- xxx
# 檔案系統沒有掛掛載點就寫none 因為swap是用來模擬記憶體的
4. 使用swapon -a 啟用交換空間

啟用swap分割槽:

swapon  [OPTION]... [DEVICE]

選項:

-a: 啟用所有的交換分割槽
-s: 顯示交換區的使用狀況

禁用swap分割槽:

swapoff  [OPTION]... [DEVICE]

SWAP的優先順序

有多個二swap分割槽的時候,指定優先使用誰。

swapon -s 可以檢視swap的優先順序

可以指定swap分割槽0到32767的優先順序,值越大優先順序越高

#修改swap的優先順序:
例如:UUID=xxxxswap   swap    pri=100      0 0
#更改完成以後禁用再重新啟用就生效了

用一個檔案來作為swap

#建立一個指定大小的檔案
dd if=/dev/null of=filename bs=大小 count=1 

#因為這個檔案後面要用來放記憶體中的資訊,所以為了安全要更改許可權
chmod a= filename #除了root誰也看不到

#建立檔案系統
mkswap filename

#掛載  /etc/fstab
file_name(不能寫uuid,uuid是針對裝置來說的)  none swap defaults 0  0

#啟用swap
swapon file_name

swap的使用策略

/proc/sys/vm/swappiness 的值決定了當記憶體佔用達到一定的百分比時,會啟用swap分割槽的空間

例如/proc/sys/vm/swappiness這個值是30,則記憶體在使用到100-30=70%的時候,就開始出現有交換分割槽的使用

/proc/sys/vm/swappiness值為0不會禁止交換分割槽的使用,是最大限度地降低了使用swap的可能性