在 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.
#### 內容解密:
lvcreate指令:用於在指定的卷組中建立邏輯卷。-L size引數:指定邏輯卷的大小,單位可以是 G(吉位元)或 M(兆位元)。-n lvname引數:指定邏輯卷的名稱,例如software-lv。vg引數:指定要在哪個卷組中建立邏輯卷,例如vgsw。- 警告處理:如果檢測到現有的檔案系統簽名,系統會提示是否清除。輸入
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
...
內容解密:
sudo mkfs.xfs /dev/vgsw/software-lv:在指定的邏輯捲上建立 XFS 檔案系統。meta-data部分顯示了檔案系統的後設資料組態,包括索引節點大小、分配組數量等。- 檔案系統的建立使得邏輯卷能夠被作業系統掛載和使用。
然後,建立一個掛載點並掛載檔案系統。
$ 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)
內容解密:
sudo mkdir /sw:建立一個名為/sw的掛載點。sudo mount /dev/vgsw/software-lv /sw:將邏輯卷掛載到/sw目錄。mount | grep software:檢查掛載結果,確認邏輯卷已經成功掛載。
檢查可用空間。
$ df -h /sw
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vgsw-software--lv 1014M 40M 975M 4% /sw
內容解密:
df -h /sw:顯示/sw掛載點的磁碟使用情況。- 輸出結果表明該邏輯卷的大小為 1GB,已使用約 40MB。
最後,將邏輯卷新增到 /etc/fstab 檔案中,以實作開機自動掛載。
/dev/vgsw/software-lv /sw xfs defaults 0 0
內容解密:
- 使用邏輯卷的裝置路徑而非 UUID,以避免混淆。
- 這樣設定後,系統重啟時會自動掛載該邏輯卷。
擴充套件邏輯卷
當需要更多空間時,可以擴充套件邏輯卷。使用 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.
內容解密:
sudo lvextend -l +100%FREE /dev/vgsw/software-lv:將邏輯卷擴充套件到最大可用空間。- 輸出結果顯示邏輯卷的大小已從 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
內容解密:
sudo xfs_growfs /dev/vgsw/software-lv:擴充套件 XFS 檔案系統以佔用全部可用空間。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.5G,實際可用空間為 1.4G,因為檔案系統本身會佔用一些空間。
磁碟退役流程
當磁碟需要退役時,需要經過一系列步驟以確保資料安全和合規性。以下是一般性的退役流程:
- 通知:相關人員會收到多次通知,以確保所有權益相關者知悉退役計劃。
- Scream Test:在一段時間內斷開系統網路連線,但不關機,以測試是否有使用者反饋。
- 關機:確認無人使用後,將系統關機。
- 磁碟擦除:使用工具(如 Darik’s Boot and Nuke, DBAN)徹底擦除磁碟上的資料。
- 拆卸和封裝:將已擦除的系統從機架上移除,並封裝待處置。
重點分析:
- 通知和測試階段:確保所有相關人員有機會對退役計劃提出異議。
- 資料擦除:使用專業工具徹底清除資料,以防止資料洩露。
- 最終處置:將裝置封裝後按照公司政策進行回收或銷毀。
綜上所述,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 目錄的兩種方法
- 縮小現有的 LVM 檔案系統。
- 建立一個新的分割區和檔案系統。
- 將該檔案系統掛載為
/home。
或者:
- 安裝一個新磁碟。
- 在新磁碟上建立一個新的分割區。
- 將新的分割區掛載為
/home。
詳細步驟:將新磁碟掛載為 /home
- 安裝或建立一個新磁碟。
- 在新磁碟上建立一個新的分割區。
- 在新的分割區上建立檔案系統。
- 將新的分割區掛載到
/mnt。 - 將所有檔案從
/home複製或移動到/mnt。 - 清除
/home中的所有檔案。 - 將新的分割區從
/mnt解除安裝。 - 將新的分割區掛載到
/home。 - 在
/etc/fstab中新增/home的掛載專案。
程式碼範例與詳細解說
以下是一個簡單的範例,展示如何檢視目前的磁碟使用情況:
$ df -h
內容解密:
此命令用於顯示目前系統上的磁碟使用情況。-h 引數表示以人類易讀的格式顯示(如 GB、MB 等)。透過這個命令,您可以快速瞭解各個掛載點的磁碟使用率,從而判斷是否有空間不足的問題。
建立新分割區並掛載於 /home 目錄
在進行系統維護時,將 /home 目錄獨立掛載於新的分割區是一種常見的做法,可以提高系統的彈性和管理的便利性。以下將詳細介紹如何在虛擬機器(VM)中新增硬碟、建立新分割區、格式化檔案系統,並將其掛載至 /home 目錄的步驟。
新增硬碟與識別新裝置
首先,在虛擬機器中新增了一塊 1 GB 的硬碟,用於示範以下步驟。
識別新硬碟:使用
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 硬碟。建立新分割區:使用
fdisk工具對/dev/sdc建立新的分割區。$ sudo fdisk /dev/sdc在
fdisk的互動式介面中,依序輸入以下指令:n:建立新分割區。p:選擇主要分割區。- 直接按 Enter 鍵接受預設的分割區編號、起始磁區和結束磁區。
w:寫入變更並離開。
驗證分割區建立結果:
$ 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
掛載新分割區
掛載
/dev/sdc1至暫時掛載點/mnt:$ sudo mount /dev/sdc1 /mnt內容解密:
將
/dev/sdc1掛載至/mnt目錄,以便將原/home目錄下的檔案複製到新的分割區。複製
/home目錄下的檔案至/mnt:$ sudo cp -a /home/* /mnt內容解密:
使用
cp命令的-a引數保留檔案的許可權、連結和時間戳記,將/home目錄下的所有檔案複製到/mnt。驗證檔案是否正確複製:
$ ls -la /home $ ls -la /mnt內容解密:
對比
/home和/mnt目錄的內容,確認檔案是否正確複製。清空原
/home目錄下的檔案:$ sudo rm -rf /home/*內容解密:
清空原
/home目錄釋放空間,但保留/home目錄本身。解除安裝
/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/sdc1 以 ext4 檔案系統掛載至 /home 目錄。確保在編輯 fstab 時小心謹慎,以避免系統啟動問題。