从零开始: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$DISKmklabel gpt parted -s$DISKmkpart ESP fat32 1MiB 513MiB parted -s$DISKset1 esp on parted -s$DISKmkpart primary 513MiB 1537MiB parted -s$DISKmkpart primary 1537MiB 100% parted -s$DISKset3 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、存储分层等前沿技术
-
Linux
+关注
关注
88文章
11535浏览量
214885 -
服务器
+关注
关注
13文章
9859浏览量
88424 -
数据库
+关注
关注
7文章
3948浏览量
66811
原文标题:从零开始:Linux系统安装与分区最佳实践
文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
如何在Ubuntu Linux上释放/boot分区中的空间
linux安装中出现的分区问题?
Linux系统的性能优化策略
安装Linux操作系统课件
Linux快速入门之Linux安装

评论