從零開始:Linux系統安裝與分割槽最佳實踐
📢 運維老司機的肺腑之言:系統分割槽就像房屋裝修的水電佈局,一旦做錯,後期改動成本巨大!本文將分享我10年運維經驗中總結的分割槽策略和安裝技巧。
🚀 開篇:為什麼分割槽策略如此重要?
還記得第一次裝Linux系統時的忐忑嗎?面對fdisk命令列介面,不知道該如何下手。經歷過無數次系統重灌、資料丟失的痛苦後,我總結出了這套"零事故"的分割槽方案。
真實案例:某公司資料庫伺服器因為分割槽不當,日誌檔案撐爆了根分割槽,導致系統無法啟動,最終損失200萬。這樣的悲劇,完全可以透過合理分割槽避免!
📊 分割槽策略全景圖
生產環境推薦分割槽方案
# 標準伺服器分割槽佈局(以500GB硬碟為例)/boot - 1GB (啟動分割槽,獨立確保系統可啟動)/ - 50GB (根分割槽,系統核心檔案)/home - 100GB (使用者資料,方便遷移和備份)/var - 150GB (日誌和快取,避免撐爆系統)/tmp - 20GB (臨時檔案,定期清理)/opt - 100GB (第三方軟體安裝目錄)swap - 16GB (虛擬記憶體,建議為物理記憶體1-2倍)/data - 剩餘 (業務資料專用分割槽)
不同場景的分割槽策略
🖥️ 桌面使用者方案
/ - 100GB (系統+軟體)/home - 剩餘 (個人檔案)swap - 8GB (記憶體<16GB時設定)
🛠️ 開發環境方案
/ - 80GB (系統核心)/home - 200GB (開發專案)/var - 50GB (構建快取)/opt - 100GB (開發工具)swap - 16GB /workspace - 剩餘 (專案程式碼專用)
☁️ 雲伺服器方案
/ - 40GB (精簡系統)/var - 60GB (日誌監控)/data - 剩餘 (應用資料)swap - 檔案形式(靈活調整)
🔧 安裝前的硬體檢查清單
BIOS/UEFI 配置要點
# 檢查啟動模式[ -d /sys/firmware/efi ] && echo"UEFI模式" || echo"Legacy模式"# 關鍵BIOS設定:✅ Secure Boot: 建議關閉(避免驅動問題)✅ SATA Mode: AHCI模式(效能最佳)✅ Virtualization: 開啟(支援容器和虛擬化)✅ UEFI Boot: 推薦開啟(支援大硬碟)
硬碟健康檢查
# 安裝前必做的硬碟檢測smartctl -a /dev/sda # 檢視硬碟健康狀態badblocks -v /dev/sda # 壞道檢測hdparm -tT /dev/sda # 效能測試# 關鍵指標解讀:# Reallocated_Sector_Ct: >0 需警惕# Current_Pending_Sector: >0 立即更換# UDMA_CRC_Error_Count: >1000 檢查資料線
💎 分割槽實戰演練
方案一:命令列專業分割槽(推薦)
# 1. 檢視磁碟資訊lsblkfdisk -l# 2. 進入分割槽工具fdisk /dev/sda# 3. 建立GPT分割槽表(支援大硬碟)g # 建立GPT分割槽表# 4. 建立EFI分割槽(UEFI必需)n # 新建分割槽1 # 分割槽號# 起始扇區(預設)+512M # 大小t # 更改分割槽型別1 # EFI System# 5. 建立boot分割槽n2+1Gt220 # Linux filesystem# 6. 建立LVM分割槽(靈活管理)n3# 使用剩餘空間t330 # Linux LVMw # 寫入分割槽表
方案二:LVM動態分割槽(企業首選)
# 1. 建立物理卷pvcreate /dev/sda3# 2. 建立卷組vgcreate vg_system /dev/sda3# 3. 建立邏輯卷lvcreate -L 50G -n lv_root vg_system # 根分割槽lvcreate -L 150G -n lv_var vg_system # var分割槽lvcreate -L 100G -n lv_home vg_system # home分割槽lvcreate -L 20G -n lv_tmp vg_system # tmp分割槽lvcreate -L 16G -n lv_swap vg_system # swap分割槽# 4. LVM的最大優勢:後期可調整!lvextend -L +50G /dev/vg_system/lv_var # 擴容var分割槽resize2fs /dev/vg_system/lv_var # 擴充套件檔案系統
🏗️ 檔案系統選擇策略
主流檔案系統對比
|
|
|
|
ext4 |
|
|
|
xfs |
|
|
|
btrfs |
|
|
|
zfs |
|
|
|
實戰檔案系統建立
# ext4 - 通用推薦mkfs.ext4 -L "root" /dev/vg_system/lv_rootmkfs.ext4 -L "home" /dev/vg_system/lv_home# xfs - 高效能場景mkfs.xfs -L "var" /dev/vg_system/lv_varmkfs.xfs -L "data" /dev/vg_system/lv_data# 設定swapmkswap /dev/vg_system/lv_swap# 最佳化掛載引數mount -o defaults,noatime,discard /dev/vg_system/lv_root /mnt
🎯 系統安裝核心技巧
網路安裝配置(推薦)
# 1. 配置網路源(提升安裝速度)# CentOS/RHEL 清華源sed -i 's|^#baseurl=http://mirror.centos.org|baseurl=https://mirrors.tuna.tsinghua.edu.cn|g' /etc/yum.repos.d/CentOS-Base.repo# Ubuntu 阿里源cat > /etc/apt/sources.list << 'EOF'deb https://mirrors.aliyun.com/ubuntu/ focal main restricteddeb https://mirrors.aliyun.com/ubuntu/ focal-updates main restricteddeb https://mirrors.aliyun.com/ubuntu/ focal universedeb https://mirrors.aliyun.com/ubuntu/ focal-updates universeEOF# 2. 最小化安裝 + 後期定製# 只安裝Base System,避免無用軟體包
自動化安裝指令碼
#!/bin/bash# auto_install.sh - 自動化分割槽指令碼DISK="/dev/sda"VG_NAME="vg_system"# 分割槽自動化parted -s $DISK mklabel gptparted -s $DISK mkpart ESP fat32 1MiB 513MiBparted -s $DISKset 1 esp onparted -s $DISK mkpart primary 513MiB 1537MiBparted -s $DISK mkpart primary 1537MiB 100%parted -s $DISKset 3 lvm on# LVM自動化pvcreate ${DISK}3vgcreate $VG_NAME${DISK}3lvcreate -L 50G -n lv_root $VG_NAMElvcreate -L 16G -n lv_swap $VG_NAMElvcreate -l 100%FREE -n lv_home $VG_NAME# 檔案系統建立mkfs.fat -F32 ${DISK}1mkfs.ext4 ${DISK}2mkfs.ext4 /dev/$VG_NAME/lv_rootmkfs.ext4 /dev/$VG_NAME/lv_homemkswap /dev/$VG_NAME/lv_swapecho"分割槽完成!準備安裝系統..."
⚡ 效能最佳化黃金配置
fstab最佳化配置
# /etc/fstab 最佳化示例UUID=xxx / ext4 defaults,noatime,discard 0 1UUID=xxx /boot ext4 defaults,noatime 0 2UUID=xxx /home ext4 defaults,noatime,discard 0 2UUID=xxx /var xfs defaults,noatime,discard 0 2UUID=xxx /tmp ext4 defaults,noatime,discard,nodev,nosuid,noexec 0 2UUID=xxx none swap defaults 0 0# 關鍵引數解釋:# noatime: 不更新訪問時間,提升效能# discard: 支援SSD TRIM,延長壽命# nodev,nosuid,noexec: /tmp安全加固
核心引數調優
# /etc/sysctl.conf 生產環境最佳化vm.swappiness = 10 # 降低換頁頻率vm.dirty_ratio = 15 # 髒頁重新整理比例vm.dirty_background_ratio = 5 # 後臺重新整理比例fs.file-max = 2097152 # 最大檔案控制代碼數net.core.rmem_max = 16777216 # 網路緩衝區最佳化net.core.wmem_max = 16777216
🛡️ 安全加固策略
分割槽安全設定
# 1. /tmp 安全掛載mount -o remount,nodev,nosuid,noexec /tmp# 2. /var/tmp 連結到 /tmprm -rf /var/tmpln -s /tmp /var/tmp# 3. 停用不必要的檔案系統echo"install cramfs /bin/true" >> /etc/modprobe.d/blacklist.confecho"install freevxfs /bin/true" >> /etc/modprobe.d/blacklist.confecho"install jffs2 /bin/true" >> /etc/modprobe.d/blacklist.conf
磁碟加密方案
# LUKS全盤加密(高安全需求)cryptsetup luksFormat /dev/sda3cryptsetup luksOpen /dev/sda3 encrypted_lvmpvcreate /dev/mapper/encrypted_lvm# 後續LVM操作與常規相同# 生產環境建議:敏感資料分割槽加密,系統分割槽不加密
🚨 常見問題解決方案
安裝過程問題排查
# 1. 啟動失敗排查# 檢查grub配置grub2-mkconfig -o /boot/grub2/grub.cfg# 重新安裝grubgrub2-install /dev/sda# 2. 分割槽識別問題# 更新分割槽表partprobe /dev/sda# 檢查UUIDblkid /dev/sda1# 3. LVM啟用問題vgchange -ay # 啟用所有卷組vgscan # 掃描卷組pvscan # 掃描物理卷
救援模式操作
# 系統無法啟動時的救援步驟# 1. 啟動救援模式# 2. 啟用LVMvgchange -ay# 3. 掛載根分割槽mount /dev/vg_system/lv_root /mnt/sysimage# 4. 進入chroot環境chroot /mnt/sysimage# 5. 修復問題後重啟
📈 監控與維護
分割槽使用率監控
#!/bin/bash# disk_monitor.sh - 磁碟監控指令碼THRESHOLD=80df -h | awk 'NR>1 { usage = $5 gsub(/%/, "", usage) if (usage > THRESHOLD) { print "警告: " $6 " 分割槽使用率達到 " $5 print "可用空間: " $4 }}' | mail -s "磁碟空間警告" [email protected]
LVM擴容操作
# 線上擴容步驟(生產環境驗證)# 1. 新增新硬碟pvcreate /dev/sdbvgextend vg_system /dev/sdb# 2. 擴充套件邏輯卷lvextend -L +100G /dev/vg_system/lv_var# 3. 擴充套件檔案系統# ext4resize2fs /dev/vg_system/lv_var# xfsxfs_growfs /var
🎖️ 高階技巧分享
自動化部署整合
# kickstart 配置示例(CentOS/RHEL)cat > /var/www/html/ks.cfg << 'EOF'#version=RHEL8ignoredisk --only-use=sdaautopart --type=lvmclearpart --all --initlabel --drives=sda# 分割槽自定義part /boot --fstype="xfs" --ondisk=sda --size=1024part pv.01 --fstype="lvmpv" --ondisk=sda --growvolgroup vg_system --pesize=4096 pv.01logvol / --fstype="xfs" --size=51200 --name=lv_root --vgname=vg_systemlogvol /var --fstype="xfs" --size=153600 --name=lv_var --vgname=vg_systemlogvol swap --fstype="swap" --size=16384 --name=lv_swap --vgname=vg_systemEOF
容器化環境分割槽
# Docker/Kubernetes 節點分割槽建議/ - 50GB (系統核心)/var/lib/docker - 200GB (容器儲存)/var/lib/kubelet - 100GB (Pod儲存)/data - 剩餘 (持久化儲存)# 使用專用檔案系統mkfs.xfs -n ftype=1 /dev/vg_system/lv_docker # Docker需要
📋 安裝後檢查清單
系統健康檢查
# 完整的系統檢查指令碼#!/bin/bashecho"=== 系統安裝驗證報告 ==="echo"安裝時間: $(date)"echo""echo"1. 分割槽資訊:"df -hecho""echo"2. LVM狀態:"vgslvsecho""echo"3. 掛載點檢查:"mount | column -techo""echo"4. 系統負載:"uptimefree -hecho""echo"5. 磁碟IO效能:"ddif=/dev/zero of=/tmp/testfile bs=1G count=1 oflag=directrm -f /tmp/testfileecho""echo"6. 網路連通性:"ping -c 3 8.8.8.8echo""echo"=== 驗證完成 ==="
🌟 總結與最佳實踐
黃金法則
-
1. 規劃先行:永遠不要急著分割槽,先畫出分割槽圖 -
2. 預留空間:LVM至少保留20%空間用於擴容 -
3. 分離關鍵目錄:/var、/tmp、/home獨立分割槽 -
4. 備份重要資料:分割槽前務必備份重要檔案 -
5. 測試驗證:生產環境方案先在測試機驗證
運維老司機的忠告
-
• 🎯 選擇合適的方案:沒有最好的分割槽方案,只有最適合的 -
• 🛠️ 自動化是趨勢:手工分割槽效率低,擁抱自動化工具 -
• 📊 監控不能少:分割槽不是一勞永逸,需要持續監控 -
• 🔄 保持學習:技術在發展,分割槽策略也要與時俱進
進階學習路徑
-
1. 容器化儲存:學習Docker、Kubernetes的儲存方案 -
2. 軟體定義儲存:Ceph、GlusterFS等分散式儲存 -
3. 雲原生儲存:CSI、StorageClass等Kubernetes儲存概念 -
4. 儲存效能最佳化:NVMe、儲存分層等前沿技術
文末福利
就目前來說,傳統運維衝擊年薪30W+的轉型方向就是SRE&DevOps崗位。
為了幫助大家早日擺脫繁瑣的基層運維工作,給大家整理了一套高階運維工程師必備技能資料包,內容有多詳實豐富看下圖!
共有 20 個模組





······



以上所有資料獲取請掃碼
備註:最新運維資料

100%免費領取
(後臺不再回復,掃碼一鍵領取)