2. Linux系统安装与初始化:VMware/VirtualBox安装、CentOS/Ubuntu安装、系统首次启动配置
说实话,很多新手觉得装系统是个体力活,点下一步就完事了。但我在生产环境摸爬滚打这些年,见过太多因为安装阶段埋下的坑,后面运维时炸得措手不及。这一章,咱们就把安装和初始化这件事,聊透。
2.1 虚拟化平台选型:VMware vs VirtualBox
你可能会问:学Linux为啥非得用虚拟机?我的回答是:你总不想因为一个rm -rf /*就把物理机搞挂吧?虚拟机就是你的安全沙箱。
| 特性 | VMware Workstation | VirtualBox |
|---|---|---|
| 性能 | 高,尤其磁盘I/O | 中等,适合轻量使用 |
| 快照功能 | 支持,且恢复速度快 | 支持,但大快照会卡 |
| 网络模式 | NAT/桥接/仅主机,稳定 | 同上,但偶尔丢包 |
| 3D加速 | 支持较好 | 基本够用 |
| 价格 | 商业软件,需付费 | 开源免费 |
我的建议: 如果你只是做实验、学命令,VirtualBox完全够用。但如果你要跑数据库集群、做性能压测,我建议用VMware。我在一次压测中发现,同样配置下VMware的磁盘IOPS比VirtualBox高出约30%。
2.2 虚拟机创建与系统安装
2.2.1 创建虚拟机的基本参数
我个人习惯,创建虚拟机时先把资源规划好。别等系统装完了才发现磁盘不够,那才叫尴尬。
- CPU: 至少2核,生产环境建议4核起步
- 内存: CentOS最小2GB,Ubuntu桌面版建议4GB
- 磁盘: 20GB起步,我一般给40GB,留点余量
- 网络: 先选NAT模式,装完再改桥接
注意: 磁盘类型选「动态分配」还是「固定大小」?动态分配省空间,但性能稍差;固定大小性能好,但一开始就占满。我建议:实验用动态,生产用固定。
2.2.2 CentOS安装要点
CentOS 7/8的安装流程大同小异。我重点说几个容易踩坑的地方。
- 软件选择: 别选「带GUI的服务器」,除非你真的需要桌面。选「最小安装」或「基础设施服务器」,省资源又安全。
- 磁盘分区: 我习惯手动分区。给/boot 1GB,swap 2GB(内存大的可以不给),剩下的全给/。
- 网络配置: 安装时把网卡打开,设置主机名。我一般用
hostnamectl set-hostname后面再改。 - root密码: 别太简单,也别太复杂记不住。我有个密码本,专门记这些。
# 安装后的最小化配置
# 关闭SELinux(实验环境)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
# 配置yum源(阿里云镜像)
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 更新系统
yum update -y
2.2.3 Ubuntu安装要点
Ubuntu的安装更友好,但有些细节不注意也会出问题。
- 镜像选择: 服务器用Ubuntu Server LTS版本,别追新。20.04或22.04都稳。
- 磁盘加密: 安装时默认会问你要不要加密磁盘。我建议:笔记本用加密,服务器别用。为什么?因为服务器重启后需要手动输入密码,远程就废了。
- SSH服务: 安装时勾选「Install OpenSSH server」,省得后面再装。
# Ubuntu安装后的基础配置
# 更新apt源
sudo sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list
# 安装常用工具
sudo apt update && sudo apt install -y vim net-tools curl wget
# 设置时区
sudo timedatectl set-timezone Asia/Shanghai
2.3 系统首次启动配置
系统装完,别急着用。先做几件事,后面能省很多事。
2.3.1 网络配置
我记得有一次,装完CentOS发现上不了网,折腾了半天才发现是网卡没激活。
# CentOS 7 配置静态IP
vi /etc/sysconfig/network-scripts/ifcfg-ens33
# 内容示例
TYPE=Ethernet
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
ONBOOT=yes
# 重启网络
systemctl restart network
# Ubuntu 20.04 配置静态IP(使用netplan)
vi /etc/netplan/00-installer-config.yaml
# 内容示例
network:
ethernets:
ens33:
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 114.114.114.114]
version: 2
# 应用配置
sudo netplan apply
2.3.2 用户与安全配置
我个人习惯,装完系统第一件事就是创建一个普通用户,然后禁用root远程登录。安全嘛,从第一步做起。
# 创建普通用户
useradd -m -G wheel devops
passwd devops
# 配置sudo权限(CentOS)
visudo
# 取消下面这行的注释
%wheel ALL=(ALL) ALL
# 禁用root远程SSH登录
sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
systemctl restart sshd
核心原则: 最小权限原则。能用普通用户做的事,绝不用root。我曾经见过一个团队,所有人用root干活,结果一次误操作删了数据库目录……嗯,后面的事我就不说了。
2.3.3 系统更新与时间同步
系统刚装完,漏洞补丁一堆。我建议第一时间更新,然后配置NTP同步。
# CentOS
yum install -y ntpdate
ntpdate ntp.aliyun.com
hwclock --systohc
# Ubuntu
sudo apt install -y chrony
sudo systemctl enable --now chrony
2.4 知识结构图:系统安装与初始化流程
2.5 避坑指南
做运维这些年,我总结了几条血泪教训,分享给你:
- 磁盘分区别偷懒: 我曾经图省事,直接自动分区。结果后来/var/log写满,系统直接挂了。手动分区,给/var单独分10GB,给/tmp单独分5GB,稳得很。
- swap别给太大: 以前服务器内存小,swap给到16GB。现在内存动不动64GB、128GB,swap给2GB就够了,甚至可以不配。为什么?因为swap一用,性能就崩。
- 防火墙别关: 很多教程让你装完直接
systemctl stop firewalld。我建议:别关,只放行需要的端口。安全是底线。 - 快照是个好东西: 装完系统、配好基础环境后,打个快照。后面折腾坏了,一键恢复。我每次做重大变更前,必打快照。
重要提醒: 生产环境安装时,一定要记录安装过程中的所有配置参数。IP、主机名、分区方案、软件包列表……这些信息后面排错时能救命。我习惯用Markdown写一份安装文档,放在/etc/install-notes.md里。
好了,系统装好了,基础配置也做完了。下一件事是什么?嗯,咱们后面再聊。