从零开始: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. 查看磁盘信息
lsblk
fdisk -l
# 2. 进入分区工具
fdisk /dev/sda
# 3. 创建GPT分区表(支持大硬盘)
g # 创建GPT分区表
# 4. 创建EFI分区(UEFI必需)
n # 新建分区
1 # 分区号
# 起始扇区(默认)
+512M # 大小
t # 更改分区类型
1 # EFI System
# 5. 创建boot分区
n
2
+1G
t
2
20 # Linux filesystem
# 6. 创建LVM分区(灵活管理)
n
3
# 使用剩余空间
t
3
30 # Linux LVM
w # 写入分区表
方案二: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_root
mkfs.ext4 -L "home" /dev/vg_system/lv_home
# xfs - 高性能场景
mkfs.xfs -L "var" /dev/vg_system/lv_var
mkfs.xfs -L "data" /dev/vg_system/lv_data
# 设置swap
mkswap /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 restricted
deb https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted
deb https://mirrors.aliyun.com/ubuntu/ focal universe
deb https://mirrors.aliyun.com/ubuntu/ focal-updates universe
EOF
# 2. 最小化安装 + 后期定制
# 只安装Base System,避免无用软件包
自动化安装脚本
#!/bin/bash
# auto_install.sh - 自动化分区脚本
DISK="/dev/sda"
VG_NAME="vg_system"
# 分区自动化
parted -s $DISK mklabel gpt
parted -s $DISK mkpart ESP fat32 1MiB 513MiB
parted -s $DISKset 1 esp on
parted -s $DISK mkpart primary 513MiB 1537MiB
parted -s $DISK mkpart primary 1537MiB 100%
parted -s $DISKset 3 lvm on
# LVM自动化
pvcreate ${DISK}3
vgcreate $VG_NAME${DISK}3
lvcreate -L 50G -n lv_root $VG_NAME
lvcreate -L 16G -n lv_swap $VG_NAME
lvcreate -l 100%FREE -n lv_home $VG_NAME
# 文件系统创建
mkfs.fat -F32 ${DISK}1
mkfs.ext4 ${DISK}2
mkfs.ext4 /dev/$VG_NAME/lv_root
mkfs.ext4 /dev/$VG_NAME/lv_home
mkswap /dev/$VG_NAME/lv_swap
echo "分区完成!准备安装系统..."
⚡ 性能优化黄金配置
fstab优化配置
# /etc/fstab 优化示例
UUID=xxx / ext4 defaults,noatime,discard 0 1
UUID=xxx /boot ext4 defaults,noatime 0 2
UUID=xxx /home ext4 defaults,noatime,discard 0 2
UUID=xxx /var xfs defaults,noatime,discard 0 2
UUID=xxx /tmp ext4 defaults,noatime,discard,nodev,nosuid,noexec 0 2
UUID=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 链接到 /tmp
rm -rf /var/tmp
ln -s /tmp /var/tmp
# 3. 禁用不必要的文件系统
echo "install cramfs /bin/true" >> /etc/modprobe.d/blacklist.conf
echo "install freevxfs /bin/true" >> /etc/modprobe.d/blacklist.conf
echo "install jffs2 /bin/true" >> /etc/modprobe.d/blacklist.conf
磁盘加密方案
# LUKS全盘加密(高安全需求)
cryptsetup luksFormat /dev/sda3
cryptsetup luksOpen /dev/sda3 encrypted_lvm
pvcreate /dev/mapper/encrypted_lvm
# 后续LVM操作与常规相同
# 生产环境建议:敏感数据分区加密,系统分区不加密
🚨 常见问题解决方案
安装过程问题排查
# 1. 启动失败排查
# 检查grub配置
grub2-mkconfig -o /boot/grub2/grub.cfg
# 重新安装grub
grub2-install /dev/sda
# 2. 分区识别问题
# 更新分区表
partprobe /dev/sda
# 检查UUID
blkid /dev/sda1
# 3. LVM激活问题
vgchange -ay # 激活所有卷组
vgscan # 扫描卷组
pvscan # 扫描物理卷
救援模式操作
# 系统无法启动时的救援步骤
# 1. 启动救援模式
# 2. 激活LVM
vgchange -ay
# 3. 挂载根分区
mount /dev/vg_system/lv_root /mnt/sysimage
# 4. 进入chroot环境
chroot /mnt/sysimage
# 5. 修复问题后重启
📈 监控与维护
分区使用率监控
#!/bin/bash
# disk_monitor.sh - 磁盘监控脚本
THRESHOLD=80
df -h | awk 'NR>1 {
usage = $5
gsub(/%/, "", usage)
if (usage > THRESHOLD) {
print "警告: " $6 " 分区使用率达到 " $5
print "可用空间: " $4
}
}' | mail -s "磁盘空间警告" admin@company.com
LVM扩容操作
# 在线扩容步骤(生产环境验证)
# 1. 添加新硬盘
pvcreate /dev/sdb
vgextend vg_system /dev/sdb
# 2. 扩展逻辑卷
lvextend -L +100G /dev/vg_system/lv_var
# 3. 扩展文件系统
# ext4
resize2fs /dev/vg_system/lv_var
# xfs
xfs_growfs /var
🎖️ 高级技巧分享
自动化部署集成
# kickstart 配置示例(CentOS/RHEL)
cat > /var/www/html/ks.cfg << 'EOF'
#version=RHEL8
ignoredisk --only-use=sda
autopart --type=lvm
clearpart --all --initlabel --drives=sda
# 分区自定义
part /boot --fstype="xfs" --ondisk=sda --size=1024
part pv.01 --fstype="lvmpv" --ondisk=sda --grow
volgroup vg_system --pesize=4096 pv.01
logvol / --fstype="xfs" --size=51200 --name=lv_root --vgname=vg_system
logvol /var --fstype="xfs" --size=153600 --name=lv_var --vgname=vg_system
logvol swap --fstype="swap" --size=16384 --name=lv_swap --vgname=vg_system
EOF
容器化环境分区
# 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/bash
echo"=== 系统安装验证报告 ==="
echo"安装时间: $(date)"
echo""
echo"1. 分区信息:"
df -h
echo""
echo"2. LVM状态:"
vgs
lvs
echo""
echo"3. 挂载点检查:"
mount | column -t
echo""
echo"4. 系统负载:"
uptime
free -h
echo""
echo"5. 磁盘IO性能:"
ddif=/dev/zero of=/tmp/testfile bs=1G count=1 oflag=direct
rm -f /tmp/testfile
echo""
echo"6. 网络连通性:"
ping -c 3 8.8.8.8
echo""
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 个模块

1.38张最全工程师技能图谱

2.面试大礼包

3.Linux书籍

4.go书籍

······
6.自动化运维工具

18.消息队列合集


以上所有资料获取请扫码
备注:最新运维资料

100%免费领取
(后台不再回复,扫码一键领取)
本文链接:https://www.yunweipai.com/47341.html
网友评论comments