返回文章列表

Linux磁碟管理與邏輯捲操作

本文介紹 Linux 系統中磁碟管理的實務操作,包含掛載新的磁碟分割區、設定開機自動掛載、建立與擴充套件邏輯捲(LVM),以及磁碟退役流程與系統健康維護的最佳實務。

系統管理 Linux

在 Linux 環境下,有效管理磁碟空間至關重要。本文將引導您完成掛載新分割區、使用邏輯捲管理(LVM)進行更彈性的磁碟空間組態,以及日常系統維護的關鍵步驟,確保系統穩定執行。同時也涵蓋了磁碟退役流程,以確保資料安全和合規性。以下將逐步說明如何新增硬碟、分割、格式化,並將其掛載至 /home 目錄,以及如何使用 LVM 建立和擴充套件邏輯捲。

邏輯捲管理與磁碟掛載實務操作

在Linux系統管理中,磁碟管理是一項基本且重要的任務。本文將介紹如何掛載新的磁碟分割區至特定目錄,以及如何建立邏輯捲(Logical Volumes)以實作更彈性的磁碟空間管理。

掛載新的磁碟分割區

首先,我們需要將新的磁碟分割區掛載到指定的目錄下。假設我們要將 /dev/sdb1 掛載到 /opt/software 目錄:

$ sudo mount /dev/sdb1 /opt/software

執行完掛載指令後,我們可以使用 mount 指令來檢查掛載是否成功:

$ mount | grep sdb1
/dev/sdb1 on /opt/software type xfs (rw,relatime,seclabel,attr2,inode64,logbuf...

確認 /dev/sdb1 已成功掛載到 /opt/software 後,我們需要編輯 /etc/fstab 檔案,以確保系統重啟後該磁碟分割區仍能自動掛載。

設定自動掛載

編輯 /etc/fstab 並新增以下內容:

UUID=ca2701e0-3e75-4930-b14e-d83e19a5cffb /opt/software xfs defaults 0 0

對於根據Debian的系統(如Ubuntu),上述設定可能會略有不同:

/dev/disk/by-uuid/ca2701e0-3e75-4930-b14e-d83e1... /opt/software xfs defaults 0 0

儲存檔案後,系統重啟時 /dev/sdb1 將自動掛載到 /opt/software

存取許可權設定

為了讓使用者能夠存取該磁碟,需要調整 /opt/software 的許可權或在其下建立具有適當許可權的子目錄。

建立邏輯捲

邏輯捲提供了極大的彈性來管理磁碟空間。其中一個重要的功能是能夠在系統運作中調整分割區的大小,而無需停機。

識別可用的磁碟

首先,使用 lsblk 指令來檢查系統中可用的磁碟或準備轉換為邏輯捲的磁碟:

$ lsblk
NAME          MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
...
sdb           8:16   0   1.5G  0 disk

建立實體捲(Physical Volume)

選擇可用的磁碟(如 /dev/sdb),並使用 pvcreate 指令將其初始化為實體捲:

$ sudo pvcreate /dev/sdb
WARNING: dos signature detected on /dev/sdb at offset 510. Wipe it? [y/n]: y
Wiping dos signature on /dev/sdb.
Physical volume "/dev/sdb" successfully created.

建立捲群組(Volume Group)

接下來,使用 vgcreate 指令從實體捲建立捲群組,並指定名稱(如 vgsw):

$ sudo vgcreate vgsw /dev/sdb
Volume group "vgsw" successfully created

建立邏輯捲(Logical Volume)

最後,使用 lvcreate 指令在指定的捲群組中建立邏輯捲。例如,分配1GB空間給名為 software-lv 的邏輯捲:

$ sudo lvcreate -L 1G -n software-lv vgsw
WARNING: xfs signature detected on /dev/vgsw/software-lv at offset 0.
Wipe it? [y/n]: y
Wiping xfs signature on /dev/vgsw/software-lv.
Logical volume "software-lv" created.

#### 內容解密:

  1. lvcreate 指令:用於在指定的卷組中建立邏輯卷。
  2. -L size 引數:指定邏輯卷的大小,單位可以是 G(吉位元)或 M(兆位元)。
  3. -n lvname 引數:指定邏輯卷的名稱,例如 software-lv
  4. vg 引數:指定要在哪個卷組中建立邏輯卷,例如 vgsw
  5. 警告處理:如果檢測到現有的檔案系統簽名,系統會提示是否清除。輸入 y 以確認清除並繼續建立邏輯卷。

邏輯卷管理與磁碟處理詳解

在現代的系統管理中,邏輯卷管理(Logical Volume Management, LVM)提供了一種靈活的方式來管理磁碟儲存。本文將詳細介紹如何建立邏輯卷、格式化、掛載以及擴充套件邏輯卷,最後探討磁碟退役的流程。

建立邏輯卷與檔案系統

首先,我們需要確認邏輯卷的裝置路徑。在使用 LVM 時,必須使用完整的邏輯卷裝置路徑,例如 /dev/vgsw/software-lv。使用 lvs 命令可以查詢邏輯卷的詳細資訊。

$ sudo lvs /dev/vgsw/software-lv
LV         VG   Attr       LSize   Pool Origin ...
software-lv vgsw -wi-a
---
-- 1.00g

接下來,在邏輯捲上建立檔案系統。這一步驟與在普通分割槽上建立檔案系統相同,使用 mkfs.xfs 命令即可。

$ sudo mkfs.xfs /dev/vgsw/software-lv
meta-data=/dev/vgsw/software-lv isize=512 agcount=4, agsize=65536 blks
...

內容解密:

  1. sudo mkfs.xfs /dev/vgsw/software-lv:在指定的邏輯捲上建立 XFS 檔案系統。
  2. meta-data 部分顯示了檔案系統的後設資料組態,包括索引節點大小、分配組數量等。
  3. 檔案系統的建立使得邏輯卷能夠被作業系統掛載和使用。

然後,建立一個掛載點並掛載檔案系統。

$ sudo mkdir /sw
$ sudo mount /dev/vgsw/software-lv /sw
$ mount | grep software
/dev/mapper/vgsw-software--lv on /sw type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)

內容解密:

  1. sudo mkdir /sw:建立一個名為 /sw 的掛載點。
  2. sudo mount /dev/vgsw/software-lv /sw:將邏輯卷掛載到 /sw 目錄。
  3. mount | grep software:檢查掛載結果,確認邏輯卷已經成功掛載。

檢查可用空間。

$ df -h /sw
Filesystem                  Size  Used Avail Use% Mounted on
/dev/mapper/vgsw-software--lv 1014M   40M  975M   4% /sw

內容解密:

  1. df -h /sw:顯示 /sw 掛載點的磁碟使用情況。
  2. 輸出結果表明該邏輯卷的大小為 1GB,已使用約 40MB。

最後,將邏輯卷新增到 /etc/fstab 檔案中,以實作開機自動掛載。

/dev/vgsw/software-lv /sw xfs defaults 0 0

內容解密:

  1. 使用邏輯卷的裝置路徑而非 UUID,以避免混淆。
  2. 這樣設定後,系統重啟時會自動掛載該邏輯卷。

擴充套件邏輯卷

當需要更多空間時,可以擴充套件邏輯卷。使用 lvextend 命令可以增加邏輯卷的大小。

$ sudo lvextend -l +100%FREE /dev/vgsw/software-lv
Size of logical volume vgsw/software-lv changed from 1.00 GiB (256 extents) to 1.44 GiB (369 extents).
Logical volume vgsw/software-lv successfully resized.

內容解密:

  1. sudo lvextend -l +100%FREE /dev/vgsw/software-lv:將邏輯卷擴充套件到最大可用空間。
  2. 輸出結果顯示邏輯卷的大小已從 1GB 增加到 1.44GB。

擴充套件後,需要調整檔案系統大小以利用新增的空間。

$ sudo xfs_growfs /dev/vgsw/software-lv
meta-data=/dev/mapper/vgsw-software--lv isize=512 agcount=4, agsize=65536 blks
...
data blocks changed from 262144 to 377856

內容解密:

  1. sudo xfs_growfs /dev/vgsw/software-lv:擴充套件 XFS 檔案系統以佔用全部可用空間。
  2. data blocks changed from 262144 to 377856:表示檔案系統的資料區塊已成功擴充套件。

再次檢查可用空間。

$ df -h /sw
Filesystem                  Size  Used Avail Use% Mounted on
/dev/mapper/vgsw-software--lv 1.5G   43M  1.4G   3% /sw

內容解密:

  1. 現在顯示的邏輯卷大小為 1.5G,實際可用空間為 1.4G,因為檔案系統本身會佔用一些空間。

磁碟退役流程

當磁碟需要退役時,需要經過一系列步驟以確保資料安全和合規性。以下是一般性的退役流程:

  1. 通知:相關人員會收到多次通知,以確保所有權益相關者知悉退役計劃。
  2. Scream Test:在一段時間內斷開系統網路連線,但不關機,以測試是否有使用者反饋。
  3. 關機:確認無人使用後,將系統關機。
  4. 磁碟擦除:使用工具(如 Darik’s Boot and Nuke, DBAN)徹底擦除磁碟上的資料。
  5. 拆卸和封裝:將已擦除的系統從機架上移除,並封裝待處置。

重點分析:

  • 通知和測試階段:確保所有相關人員有機會對退役計劃提出異議。
  • 資料擦除:使用專業工具徹底清除資料,以防止資料洩露。
  • 最終處置:將裝置封裝後按照公司政策進行回收或銷毀。

綜上所述,LVM 提供了一種靈活的磁碟管理方式,而嚴格的退役流程則確保了資料安全和公司資產管理的規範性。

維護系統健康

維護系統健康是一個廣泛的話題,涵蓋了預防性維護、日常清理、修補程式更新、安全任務、使用者維護以及監控和緩解各種無序擴散的問題。維護系統健康是一項主動而非被動的工作。

自動化與手動維護

監控可以提供幫助。自動化定期清理某些區域可以有所裨益。自動化更新同樣有助於系統健康,但您仍需主動檢視日誌、檢查磁碟空間和無序擴散情況,並處理使用者維護任務。許多這些任務需要親自操作螢幕和鍵盤。如果能將系統健康維護的所有方面自動化,那麼所需的系統管理員將會大大減少。

本章節將介紹自動化和手動的系統健康維護任務。

保持系統整潔

日常清理工作是沒有人喜歡做的。它既枯燥又耗時,甚至可能惹惱使用者,並導致他們向長官報告,這絕不是一件好事。只要您遵守公司政策並且不自行其是,您就會有材料可以讓您向憤怒的使用者解釋。清理系統的規則與您進行的任何其他維護工作相同:在意外刪除重要檔案或目錄時,確保有良好的備份。

清理 /tmp 目錄

/tmp 目錄是一個共用目錄。它與所有使用者、應用程式和系統程式共用。任何人都可以寫入此目錄,這對管理員來說是個問題,因為對系統目錄的無限制存取可能會導致致命後果。如果原始管理員沒有將 /tmp 目錄建立為一個獨立的檔案系統,使用者或應用程式可能會填滿所有空間。

$ df -h /tmp
Filesystem      Size  Used Avail Use% Mounted on
/dev/mapper/cl-root   6.2G  3.3G  3.0G   53% /

啟用 tmp.mount

啟用 tmp.mount 可以解決 /tmp 目錄的問題。這項服務會建立一個臨時檔案系統(tmpfs)並將其掛載為 /tmp。它的特點之一是使用揮發性儲存(RAM),填滿它不會導致系統穩定性問題。

$ sudo systemctl enable tmp.mount
Created symlink /etc/systemd/system/local-fs.target.wants/tmp.mount → /usr/lib/systemd/system/tmp.mount.
$ sudo systemctl start tmp.mount
$ df -h /tmp
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           405M     0  405M   0% /tmp

使 /home 目錄對所有人可用

/home 目錄是一個共用目錄,因為它包含了所有使用者的主目錄(除了 root 使用者)。如果 /home 目錄與 / 目錄位於同一檔案系統上,使用者可能會填滿 / 並導致系統問題,就像填滿 /tmp 一樣。

處理 /home 目錄的兩種方法
  1. 縮小現有的 LVM 檔案系統。
  2. 建立一個新的分割區和檔案系統。
  3. 將該檔案系統掛載為 /home

或者:

  1. 安裝一個新磁碟。
  2. 在新磁碟上建立一個新的分割區。
  3. 將新的分割區掛載為 /home

詳細步驟:將新磁碟掛載為 /home

  1. 安裝或建立一個新磁碟。
  2. 在新磁碟上建立一個新的分割區。
  3. 在新的分割區上建立檔案系統。
  4. 將新的分割區掛載到 /mnt
  5. 將所有檔案從 /home 複製或移動到 /mnt
  6. 清除 /home 中的所有檔案。
  7. 將新的分割區從 /mnt 解除安裝。
  8. 將新的分割區掛載到 /home
  9. /etc/fstab 中新增 /home 的掛載專案。

程式碼範例與詳細解說

以下是一個簡單的範例,展示如何檢視目前的磁碟使用情況:

$ df -h

內容解密:

此命令用於顯示目前系統上的磁碟使用情況。-h 引數表示以人類易讀的格式顯示(如 GB、MB 等)。透過這個命令,您可以快速瞭解各個掛載點的磁碟使用率,從而判斷是否有空間不足的問題。

建立新分割區並掛載於 /home 目錄

在進行系統維護時,將 /home 目錄獨立掛載於新的分割區是一種常見的做法,可以提高系統的彈性和管理的便利性。以下將詳細介紹如何在虛擬機器(VM)中新增硬碟、建立新分割區、格式化檔案系統,並將其掛載至 /home 目錄的步驟。

新增硬碟與識別新裝置

首先,在虛擬機器中新增了一塊 1 GB 的硬碟,用於示範以下步驟。

  1. 識別新硬碟:使用 lsblk 命令列出系統上的所有磁碟區塊裝置。

    $ lsblk | grep disk
    sda 8:0 0 8G 0 disk
    sdb 8:16 0 1.5G 0 disk
    sdc 8:32 0 1G 0 disk
    

    從輸出結果可知,/dev/sdc 即為新新增的 1 GB 硬碟。

  2. 建立新分割區:使用 fdisk 工具對 /dev/sdc 建立新的分割區。

    $ sudo fdisk /dev/sdc
    

    fdisk 的互動式介面中,依序輸入以下指令:

    • n:建立新分割區。
    • p:選擇主要分割區。
    • 直接按 Enter 鍵接受預設的分割區編號、起始磁區和結束磁區。
    • w:寫入變更並離開。
  3. 驗證分割區建立結果

    $ lsblk | grep sdc
    sdc 8:32 0 1G 0 disk
    └─sdc1 8:33 0 1023M 0 part
    

    結果顯示 /dev/sdc1 分割區已成功建立。

建立檔案系統

接下來,對 /dev/sdc1 建立 ext4 檔案系統。

$ sudo mkfs.ext4 /dev/sdc1

內容解密:

此指令使用 mkfs.ext4 命令對 /dev/sdc1 分割區建立 ext4 檔案系統。ext4 是一種廣泛使用的 Linux 檔案系統,具有日誌功能,能夠提高資料的完整性和還原能力。

驗證檔案系統是否正確建立:

$ lsblk -o NAME,FSTYPE,SIZE | grep sdc
sdc       1G
└─sdc1 ext4 1023M

掛載新分割區

  1. 掛載 /dev/sdc1 至暫時掛載點 /mnt

    $ sudo mount /dev/sdc1 /mnt
    

    內容解密:

    /dev/sdc1 掛載至 /mnt 目錄,以便將原 /home 目錄下的檔案複製到新的分割區。

  2. 複製 /home 目錄下的檔案至 /mnt

    $ sudo cp -a /home/* /mnt
    

    內容解密:

    使用 cp 命令的 -a 引數保留檔案的許可權、連結和時間戳記,將 /home 目錄下的所有檔案複製到 /mnt

  3. 驗證檔案是否正確複製

    $ ls -la /home
    $ ls -la /mnt
    

    內容解密:

    對比 /home/mnt 目錄的內容,確認檔案是否正確複製。

  4. 清空原 /home 目錄下的檔案

    $ sudo rm -rf /home/*
    

    內容解密:

    清空原 /home 目錄釋放空間,但保留 /home 目錄本身。

  5. 解除安裝 /mnt 和掛載 /dev/sdc1/home**:

    $ sudo umount /mnt
    $ sudo mount /dev/sdc1 /home
    

    內容解密:

    先解除安裝 /mnt,然後將 /dev/sdc1 掛載至 /home,完成分割區的更換。

設定開機自動掛載

編輯 /etc/fstab 檔案,新增以下內容以實作開機自動掛載:

/dev/sdc1 /home ext4 defaults 0 0

內容解密:

此設定使系統在開機時自動將 /dev/sdc1ext4 檔案系統掛載至 /home 目錄。確保在編輯 fstab 時小心謹慎,以避免系統啟動問題。