從零開始:Linux系統安裝與分割槽最佳實踐

從零開始: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
大檔案、高IO
高效能、支援大檔案
不支援縮容
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. 1. 規劃先行:永遠不要急著分割槽,先畫出分割槽圖
  2. 2. 預留空間:LVM至少保留20%空間用於擴容
  3. 3. 分離關鍵目錄:/var、/tmp、/home獨立分割槽
  4. 4. 備份重要資料:分割槽前務必備份重要檔案
  5. 5. 測試驗證:生產環境方案先在測試機驗證

運維老司機的忠告

  • • 🎯 選擇合適的方案:沒有最好的分割槽方案,只有最適合的
  • • 🛠️ 自動化是趨勢:手工分割槽效率低,擁抱自動化工具
  • • 📊 監控不能少:分割槽不是一勞永逸,需要持續監控
  • • 🔄 保持學習:技術在發展,分割槽策略也要與時俱進

進階學習路徑

  1. 1. 容器化儲存:學習Docker、Kubernetes的儲存方案
  2. 2. 軟體定義儲存:Ceph、GlusterFS等分散式儲存
  3. 3. 雲原生儲存:CSI、StorageClass等Kubernetes儲存概念
  4. 4. 儲存效能最佳化:NVMe、儲存分層等前沿技術
文末福利
就目前來說,傳統運維衝擊年薪30W+的轉型方向就是SRE&DevOps崗位。
為了幫助大家早日擺脫繁瑣的基層運維工作,給大家整理了一套高階運維工程師必備技能資料包,內容有多詳實豐富看下圖!
共有 20 個模組
1.38張最全工程師技能圖譜
2.面試大禮包
3.Linux書籍
4.go書籍
······
6.自動化運維工具
18.訊息佇列合集
 以上所有資料獲取請掃碼
備註:最新運維資料
100%免費領取
(後臺不再回復,掃碼一鍵領取)


相關文章