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的安装流程大同小异。我重点说几个容易踩坑的地方。

  1. 软件选择: 别选「带GUI的服务器」,除非你真的需要桌面。选「最小安装」或「基础设施服务器」,省资源又安全。
  2. 磁盘分区: 我习惯手动分区。给/boot 1GB,swap 2GB(内存大的可以不给),剩下的全给/。
  3. 网络配置: 安装时把网卡打开,设置主机名。我一般用hostnamectl set-hostname后面再改。
  4. 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 知识结构图:系统安装与初始化流程

Linux系统安装与初始化流程 1. 虚拟化平台选型 VMware Workstation VirtualBox 2. 系统安装 CentOS 7/8 Ubuntu 20.04/22.04 3. 首次启动配置 网络配置 用户与安全 系统更新 时间同步

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里。

好了,系统装好了,基础配置也做完了。下一件事是什么?嗯,咱们后面再聊。