1. Linux系统安装介质获取与准备
对于Linux系统管理员和运维工程师来说,获取可靠的系统安装介质是工作的第一步。不同于Windows系统,Linux发行版通常以ISO镜像形式提供,需要用户自行下载并制作启动盘。这个过程看似简单,但其中有很多细节需要注意。
1.1 主流Linux发行版选择
在获取安装介质前,首先要确定使用哪个Linux发行版。目前主流的服务器级Linux发行版包括:
-
CentOS/RHEL:企业级Linux的代表,以稳定性和长期支持著称。CentOS是RHEL的社区重建版,适合生产环境使用。最新版本是CentOS Stream 8/9,但传统CentOS 7仍然广泛使用。
-
Ubuntu Server:Canonical公司维护的Debian系发行版,每两年发布LTS(长期支持)版本,社区支持活跃,软件包更新及时。
-
Debian:以稳定性著称的发行版,软件包经过严格测试,适合对稳定性要求极高的环境。
-
openSUSE:在欧洲广泛使用的发行版,提供Leap(稳定版)和Tumbleweed(滚动更新版)两个分支。
对于初学者,建议从CentOS或Ubuntu开始,这两个发行版文档丰富,社区支持好,遇到问题容易找到解决方案。
1.2 官方镜像下载渠道
获取Linux安装镜像时,一定要从官方或可信的镜像站下载,避免使用来路不明的镜像,以防植入恶意代码。
CentOS镜像下载:
- 访问CentOS官方镜像列表:https://www.centos.org/download/
- 选择适合的版本(如CentOS 7或CentOS Stream 8)
- 点击"Download"按钮,或选择靠近你地理位置的镜像站点
- 下载DVD ISO镜像(通常4GB左右)
Ubuntu镜像下载:
- 访问Ubuntu官方下载页:https://ubuntu.com/download/server
- 选择LTS版本(如20.04 LTS或22.04 LTS)
- 点击"Download"按钮获取ISO镜像
提示:生产环境建议使用LTS(长期支持)版本,普通版本的支持周期较短(通常9个月)。
1.3 镜像验证与完整性检查
下载完成后,必须验证镜像的完整性和真实性,这是很多新手容易忽略的关键步骤。
验证步骤:
- 下载对应的CHECKSUM和GPG签名文件
- CentOS:https://www.centos.org/keys/
- Ubuntu:https://ubuntu.com/tutorial/how-to-verify-ubuntu
- 导入发行版的GPG公钥:
bash复制# CentOS示例 gpg --keyserver keyserver.ubuntu.com --recv-keys 0x24C6A8A7F4A80EB5 - 验证签名:
bash复制
gpg --verify SHA256SUM.asc - 计算下载镜像的校验和并比对:
bash复制sha256sum CentOS-7-x86_64-DVD-2009.iso
如果校验失败,说明镜像可能在下载过程中损坏或被篡改,必须重新下载。
1.4 制作启动U盘
有了ISO镜像后,需要将其写入U盘制作成可启动安装介质。推荐使用以下工具:
Windows平台:
-
Rufus(https://rufus.ie/) - 轻量级开源工具
- 选择U盘设备
- 点击"选择"按钮加载ISO镜像
- 分区类型选择"GPT"(UEFI启动)或"MBR"(传统BIOS)
- 点击"开始"写入镜像
-
Ventoy(https://www.ventoy.net/) - 多系统启动盘工具
- 先安装Ventoy到U盘
- 然后直接将ISO文件拷贝到U盘即可
- 支持同时存放多个ISO镜像
Linux/macOS平台:
-
使用dd命令(谨慎操作,确保目标设备正确):
bash复制sudo dd if=CentOS-7-x86_64-DVD-2009.iso of=/dev/sdb bs=4M status=progress警告:务必确认of参数指向的是U盘设备(如/dev/sdb),而不是系统磁盘!
-
Etcher(https://www.balena.io/etcher/) - 跨平台图形化工具
- 选择镜像文件
- 选择目标U盘
- 点击"Flash!"按钮
1.5 安装前的硬件准备
在开始安装前,还需要确认硬件兼容性和准备:
-
系统要求:
- CPU:64位处理器(x86_64架构)
- 内存:至少2GB(建议4GB以上)
- 磁盘空间:至少20GB(生产环境建议50GB以上)
- 网络:有线网络适配器(无线网卡可能需要额外驱动)
-
服务器硬件注意事项:
- RAID卡驱动:某些企业级RAID卡需要提前准备驱动
- 网卡兼容性:特别是10G/40G高速网卡
- 远程管理接口:iDRAC/iLO/IPMI配置
-
虚拟机安装准备:
- 虚拟化平台选择:VMware ESXi、Proxmox VE、Hyper-V等
- 虚拟机配置:
- 虚拟磁盘类型:SCSI或VirtIO(性能更好)
- 网卡类型:E1000或VirtIO
- 显示设置:不需要3D加速
2. Linux系统安装过程详解
2.1 启动安装程序
将制作好的启动U盘插入目标机器,开机进入BIOS/UEFI设置:
- 开机时按特定键(Del/F2/F12等,因主板而异)进入BIOS
- 调整启动顺序,将USB设备设为第一启动项
- 保存设置并重启
成功引导后,会看到Linux发行版的安装菜单。以CentOS为例:
- Install CentOS 7:正常安装模式
- Test this media & install CentOS 7:先检测介质完整性再安装(推荐)
- Troubleshooting:修复模式
选择安装选项后,系统会加载内核和初始化RAM磁盘,进入图形化或文本安装界面。
2.2 安装选项配置
语言和键盘设置:
- 选择安装过程中使用的语言(建议英文,避免后续出现编码问题)
- 键盘布局(通常US English)
安装源配置:
- 自动检测安装介质
- 或配置网络安装源(适用于无光驱/U盘的环境)
软件选择:
- Minimal Install:最小化安装,只有基本系统
- Server with GUI:带图形界面的服务器
- Workstation:工作站配置
- Custom:自定义软件包
生产环境建议选择"Minimal Install",减少不必要的软件和攻击面。
安装目标(磁盘分区):
这是安装过程中最关键也最容易出错的步骤。
自动分区方案:
- 使用整个磁盘
- 替换现有Linux系统
- 手动配置(高级用户)
手动分区建议方案(以50GB磁盘为例):
/boot:1GB(标准分区,ext4)swap:4GB(交换分区,内存<8GB时建议为内存的1.5倍)/:剩余所有空间(LVM,xfs/ext4)
对于有经验的用户,可以考虑更细致的分区方案:
/boot:1GB/:20GB/var:10GB(日志和可变数据)/home:10GB(用户数据)/tmp:5GB(临时文件)- 剩余空间留给LVM,供后续扩展
注意:使用LVM(逻辑卷管理)可以带来更大的灵活性,方便后续调整分区大小。
网络配置:
- 启用网络接口
- 配置主机名
- 设置静态IP或使用DHCP
安全策略:
- 设置root密码(建议复杂密码)
- 创建普通用户(建议禁用root远程登录)
- 配置防火墙(默认启用)
- SELinux设置(建议保持Enforcing模式)
2.3 安装过程
确认所有配置后,开始安装过程。这通常需要10-30分钟,取决于硬件性能。
安装完成后,系统会提示重启。记得移除安装介质,否则可能会再次进入安装程序。
2.4 首次启动配置
首次启动时,可能需要进行一些额外的配置:
- 接受许可证协议
- 完成初始设置(时区、用户等)
- 注册系统(RHEL需要订阅)
- 检查系统更新
3. 安装后基本配置
3.1 系统更新
安装完成后第一件事是更新系统:
bash复制# CentOS/RHEL
sudo yum update -y
# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
3.2 基础工具安装
根据用途安装常用工具:
bash复制# 开发工具链
sudo yum groupinstall "Development Tools" -y
# 常用工具
sudo yum install -y vim wget curl net-tools lsof htop tmux git
3.3 安全加固
-
SSH安全配置:
bash复制sudo vim /etc/ssh/sshd_config修改以下参数:
code复制PermitRootLogin no PasswordAuthentication no Port 2222然后重启SSH服务:
bash复制sudo systemctl restart sshd -
防火墙配置:
bash复制# 放行SSH端口 sudo firewall-cmd --permanent --add-port=2222/tcp sudo firewall-cmd --reload -
定期更新:
配置自动安全更新:bash复制sudo yum install -y yum-cron sudo systemctl enable --now yum-cron
4. 常见问题与解决方案
4.1 安装介质问题
问题1:U盘启动后卡住或报错
- 可能原因:镜像写入不完整或U盘损坏
- 解决方案:
- 重新下载ISO并验证校验和
- 更换U盘或使用不同工具写入
- 尝试其他USB端口(特别是USB2.0端口)
问题2:安装过程中提示找不到驱动
- 可能原因:缺少硬件驱动(特别是RAID卡或特殊网卡)
- 解决方案:
- 准备对应的驱动文件(通常为dd.img格式)
- 在安装启动时添加
inst.dd参数 - 或使用厂商提供的定制ISO
4.2 分区问题
问题1:安装程序无法识别磁盘
- 可能原因:
- 磁盘控制器模式设置不正确(如RAID vs AHCI)
- 磁盘本身故障
- 解决方案:
- 检查BIOS中的磁盘控制器设置
- 尝试其他SATA端口
- 使用
lsblk命令确认内核是否识别到磁盘
问题2:LVM分区后无法引导
- 可能原因:引导加载程序安装位置错误
- 解决方案:
- 确认/boot分区是标准分区(非LVM)
- 手动指定GRUB安装位置
- 使用救援模式重新安装GRUB
4.3 网络问题
问题1:安装后无法连接网络
- 可能原因:
- 网卡驱动未加载
- 网络配置不正确
- 解决方案:
- 使用
ip link检查网卡状态 - 检查
/etc/sysconfig/network-scripts/下的配置文件 - 使用
nmcli或nmtui工具重新配置
- 使用
问题2:主机名解析问题
- 解决方案:
bash复制# 编辑hosts文件 sudo vim /etc/hosts 127.0.0.1 your-hostname
4.4 性能问题
问题1:系统运行缓慢
- 排查步骤:
- 使用
top或htop查看资源使用情况 - 检查磁盘I/O使用
iotop - 检查内存使用
free -h - 查看系统日志
journalctl -xe
- 使用
问题2:磁盘空间不足
- 解决方案:
- 使用
df -h定位满的分区 - 清理日志文件(/var/log)
- 使用LVM扩展分区(如果配置了LVM)
- 使用
5. 高级安装技巧
5.1 无人值守安装(Kickstart)
对于需要批量部署的场景,可以使用Kickstart自动化安装:
- 创建Kickstart配置文件:
bash复制
system-config-kickstart - 或手动编写.ks文件
- 将文件放在Web服务器或U盘上
- 在启动时指定ks参数:
code复制linux ks=http://server/path/to/ks.cfg
5.2 网络安装
对于没有光驱和U盘的环境,可以通过网络安装:
- 配置PXE服务器(DHCP+TFTP)
- 准备网络安装镜像
- 客户端从网络启动
5.3 虚拟机模板制作
对于虚拟化环境,可以创建模板虚拟机:
- 安装并配置基础系统
- 清理系统(
yum clean all等) - 移除特定信息(SSH主机密钥等)
- 转换为模板
- 从此模板克隆新虚拟机
5.4 自定义安装镜像
对于需要预装特定软件或配置的场景:
- 解压官方ISO
- 修改kickstart文件或添加自定义脚本
- 添加额外的RPM包
- 重新生成ISO镜像
bash复制mkisofs -o custom.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -J -R -V "CentOS-7-Custom" .
6. 不同环境的安装建议
6.1 物理服务器安装
- 准备驱动:特别是RAID卡和网卡驱动
- 考虑硬件兼容性:检查HCL(硬件兼容性列表)
- 远程管理配置:iDRAC/iLO/IPMI设置
- 电源管理:配置UPS和自动关机
6.2 虚拟机安装
- 选择适当的虚拟硬件:
- 虚拟磁盘类型:SCSI或VirtIO
- 网卡类型:E1000或VirtIO
- 启用虚拟化扩展(VT-x/AMD-V)
- 配置正确的CPU和内存分配
- 考虑使用模板和克隆功能
6.3 云平台安装
- 使用云平台提供的官方镜像
- 注意云初始化配置(cloud-init)
- 安全组和网络配置
- 存储选项:本地磁盘 vs 网络存储
6.4 容器环境准备
虽然容器不需要传统安装,但基础系统仍需准备:
- 安装Docker或Podman:
bash复制# CentOS sudo yum install -y docker sudo systemctl enable --now docker # Ubuntu sudo apt install -y docker.io - 配置存储驱动(overlay2)
- 设置容器网络
- 配置镜像仓库
7. 系统维护与升级
7.1 日常维护命令
-
检查系统信息:
bash复制uname -a # 内核版本 cat /etc/os-release # 发行版信息 hostnamectl # 系统主机名和相关信息 -
包管理操作:
bash复制# CentOS/RHEL yum list installed # 已安装软件包 yum search keyword # 搜索软件包 yum info package # 查看包信息 # Ubuntu/Debian apt list --installed apt search keyword apt show package
7.2 系统升级
小版本升级(如CentOS 7.9到7.10):
bash复制sudo yum update -y
大版本升级(如CentOS 7到8):
- 备份重要数据
- 检查升级文档和已知问题
- 安装升级工具:
bash复制sudo yum install -y centos-release-upgrade-tools - 执行升级:
bash复制sudo centos-upgrade
警告:大版本升级存在风险,生产环境建议先在测试环境验证。
7.3 备份策略
-
配置文件备份:
bash复制sudo tar czf /backup/etc-$(date +%F).tar.gz /etc -
重要数据备份:
bash复制sudo rsync -avz /important/data /backup/ -
全系统备份:
- 使用LVM快照
- 或使用
dd命令创建磁盘镜像
7.4 监控与日志
-
系统监控工具:
bash复制top # 实时监控 htop # 增强版top vmstat 1 # 系统资源统计 iostat -x 1 # 磁盘I/O统计 -
日志管理:
bash复制journalctl -xe # 查看系统日志 tail -f /var/log/messages # 跟踪日志文件 logrotate # 日志轮转配置
8. 实用技巧与经验分享
8.1 安装加速技巧
-
使用本地镜像仓库:
- 搭建本地yum/apt仓库
- 或使用国内镜像源(如阿里云、清华源)
-
并行下载包:
bash复制# yum-fastestmirror插件 sudo yum install -y yum-plugin-fastestmirror # apt-fast工具(Ubuntu) sudo apt install -y apt-fast -
最小化安装:只安装必要包,减少安装时间
8.2 故障排查技巧
-
安装日志位置:
/var/log/anaconda/(CentOS/RHEL)/var/log/installer/(Ubuntu)
-
救援模式使用:
- 从安装介质启动选择"Rescue"
- 挂载现有系统进行修复
-
内核参数调试:
- 在启动时添加
debug或init=/bin/bash参数 - 进入单用户模式
- 在启动时添加
8.3 性能优化建议
-
磁盘I/O优化:
- 使用deadline或noop调度器
- 调整文件系统挂载参数(noatime)
-
内存优化:
- 调整swappiness参数
- 使用hugepages(大内存系统)
-
网络优化:
- 调整TCP参数(
/etc/sysctl.conf) - 使用更高效的网络驱动(如VirtIO)
- 调整TCP参数(
8.4 安全加固经验
-
定期审计:
bash复制sudo yum install -y aide # 文件完整性检查 sudo aide --init sudo aide --check -
最小权限原则:
- 使用普通用户操作
- 配置sudo权限而非直接使用root
-
入侵检测:
- 安装配置fail2ban
- 监控异常登录尝试
9. 不同发行版的安装特点
9.1 CentOS/RHEL系列
- 安装程序:Anaconda
- 包管理:RPM/YUM/DNF
- 特点:
- 企业级稳定性
- 长期支持版本
- SELinux默认启用
- 注意事项:
- RHEL需要订阅
- CentOS Stream是滚动更新版
9.2 Ubuntu/Debian系列
- 安装程序:Debian-Installer/Subiquity
- 包管理:DPKG/APT
- 特点:
- 丰富的软件仓库
- 较新的软件版本
- Snap包支持
- 注意事项:
- 非LTS版本支持周期短
- 默认使用cloud-init
9.3 openSUSE系列
- 安装程序:YaST
- 包管理:RPM/zypper
- 特点:
- 强大的YaST配置工具
- Btrfs文件系统默认
- Snapper快照支持
- 注意事项:
- 企业版需要订阅
- 软件包命名可能不同
9.4 其他发行版
-
Arch Linux:
- 极简主义
- 滚动更新
- 手动安装过程
-
Gentoo:
- 源码编译安装
- 高度可定制
- 适合高级用户
-
CoreOS/Flatcar:
- 容器优化
- 不可变基础设施
- 自动更新机制
10. 未来趋势与新技术
10.1 不可变基础设施
-
CoreOS/Fedora CoreOS:
- 系统作为整体更新
- 回滚机制完善
-
容器化部署:
- 传统安装方式减少
- 更多使用容器镜像
10.2 自动化部署工具
-
Puppet/Chef/Ansible:
- 基础设施即代码
- 自动化配置管理
-
Terraform:
- 多云环境部署
- 声明式基础设施管理
10.3 新型安装方式
-
网络PXE安装:
- 大规模部署
- 集中管理
-
镜像直接写入:
- 无需传统安装过程
- 如Raspberry Pi的镜像烧录
-
云原生安装:
- 与云平台深度集成
- 使用cloud-init初始化
在实际工作中,我发现很多问题都源于安装阶段的不规范操作。比如有一次,客户抱怨服务器频繁死机,排查后发现是因为安装时没有正确配置RAID卡驱动,导致磁盘性能极差。还有一次,安全审计发现多台服务器存在漏洞,原因是安装时使用了相同的SSH主机密钥。这些经验告诉我,规范的安装过程是系统稳定运行的基础。