3.1 本练习机的规划——尤其是分区参数

这一章把第二章的理论落地成一台真机器,全书后续所有章节都在这台练习机上操作

虚拟机硬件(KVM 搭建):

  • CPU:宿主机直通(Intel i7 2600)
  • 内存:约 1.2GB
  • 磁盘:40GB VirtIO 磁盘 → 设备名是 /dev/vda(呼应第二章:虚拟机磁盘不叫 sda);另挂一颗 2GB IDE 磁盘(/dev/sda)纯留作测试
  • 网卡:桥接(bridge)模式,VirtIO 芯片
  • 新手建议用 VirtualBox 照做即可

分区方案(要背下来,后面章节都基于它):

所需目录/设备容量文件系统分区格式
BIOS boot2MB系统自订主分区
/boot1GBxfs主分区
/10GBxfsLVM
/home5GBxfsLVM
swap1GBswapLVM

三个刻意的设计:

  1. 强制 GPT:40GB < 2TB,系统默认会用 MBR,但为了练新技术,安装时加参数强制 GPT。GPT 下没有主/延伸/逻辑之分,但传统 BIOS + GPT 开机需要一个 2MB 的 BIOS boot 分区(放 grub 第一阶段装不下的开机代码)
  2. /、/home、swap 用 LVM 管理:LVM 是可弹性扩缩容量的机制(第十四章细讲),CentOS 默认就用它
  3. LVM 卷组只给 30G、磁盘留约 9GB 不分区——给后续章节练习分区、扩容用。把磁盘一次用光的人后面没得练!

其他决定:boot loader 用默认 grub2 装到 MBR;软件选”含 X 接口的服务器”(Server with GUI)。

💡 安装前的检查表单思想很工程化:安装媒体版本、硬件架构是否吻合、硬盘可否全删、分区方案、IP 参数(192.168.1.100 / 主机名 study.centos.vbird)、软件选择——先规划后动手,装完不后悔。

3.2 开始安装CentOS 7

通用安装七步:调 BIOS 开机顺序 → 选安装模式 → 语系/键盘 → 软件选择 → 磁盘分区 → 网络/时区/root 密码 → 装后首次设置。

3.2.1 开机媒体

  • BIOS(按 Del 或 F2 进入)把光盘/U 盘调成第一开机设备
  • Linux 下做启动 U 盘一条命令搞定:dd if=centos7.iso of=/dev/sdc(USB2.0 约 10MB/s 要等几分钟)
  • USB3.0 的 U 盘可能被主板当成”硬盘”,要在硬盘开机顺序里选它

3.2.2 强制使用 GPT —— inst.gpt

本章最重要的隐藏操作:光盘开机菜单光标停在 “Install CentOS 7” → 按 Tab → 参数行尾加 inst.gpt → 回车。不加的话 40GB 磁盘默认 MBR。

3.2.3 在地设置

  • 时区选亚洲/台北(我们选上海),日期时间核对
  • 键盘配置要预设中英文切换键(Ctrl+Shift),这版图形界面默认没给切换键
  • 吐槽点:确认按钮在左上角,老人家找了一分钟 😄

3.2.4 安装来源与软件选择

  • 安装来源默认光盘(sr0);局域网内架安装服务器走网络装反而最快(giga 网络 100MB/s 完胜 DVD)
  • 软件选择是最大的坑:7.x 默认”最小型安装”,什么都没有。练习机要手动改选”含有 GUI 的服务器”(默认搭 GNOME)

3.2.5 磁盘分区实操(重头戏)

  1. “安装目的地”里勾选正确的硬盘(有两颗!),选”我将配置分区”进手动模式
  2. 旧系统的分区先删掉(点减号,可一键”删除它”连带删光)
  3. 逐个建分区,设备类型三选一:
    • 标准分区:普通分区(/dev/vda1 这种)——biosboot 和 /boot 用这个
    • LVM:弹性容量管理——/、/home、swap 用这个,记得把卷组容量改成”固定 30G”留余地
    • LVM 紧张供应:thin provisioning,用多少才分配多少
  4. 文件系统怎么选:
    • xfs:CentOS 7 默认,大型服务器出身,大容量磁盘管理强、格式化飞快 → 主力
    • ext2/3/4:Linux 老将,大磁盘时代渐退役
    • swap:不需要挂载点;BIOS Boot:GPT 专用;vfat:Linux/Windows 双系统交换数据用
  5. 完成时核对:剩约 9GB 可用空间才对;确认窗口里看到分区表删除了 MSDOS、创建了 GPT = 成功

💡 swap 的定位已经变了:老说法”内存的 2 倍”,现在内存够大,1~2GB 意思一下就行。鸟哥金句:“如果你的系统竟然会用到 swap,那代表——钱花得不够多,继续扩充内存啦!“

3.2.6 KDUMP 与网络

  • KDUMP:内核崩溃时转储内存数据,给内核开发者 debug 用的,开关影响不大(重点回顾里建议可不启动)
  • 网络设置的坑:CentOS 7 默认开机不启动网络!必须勾”当这个网络可用时自动连线”,再手动配 IPv4(192.168.1.100/255.255.255.0)+ 主机名 study.centos.vbird
  • 虚拟机网卡叫 eth0;实体机是 em1/p1p1 这类按插槽命名的新规则

3.2.7 root 密码与一般用户

安装拷文件的同时可以并行设账号(节省时间):

  • root 密码:弱密码系统会警告,坚持要按两次”完成”才放行。好密码 ≥8 字符 + 特殊符号 + 非个人信息(如 I&my_dog)。鸟哥的教训:给学生用 1234 当密码,上线就被绑架了
  • 必须创建一般账号(dmtsai)并勾选”让这位使用者成为管理员”→ 之后用自己的密码就能 su/sudo 成 root,日常绝不用 root 直接登录。root 密码忘了也不怕

3.2.8-3.2.9 收尾与彩蛋

  • 首次开机要同意授权条款,然后就到登录画面了
  • /root/anaconda-ks.cfg:安装时的所有选择都自动记录在这,配合 kickstart 可以一键复刻一模一样的系统(企业批量装机的玩法)
  • 烧机:安装盘 Troubleshooting → Run a memory test(memtest86),让内存满载跑一天测新机器稳定性
  • 笔记本装不上:开机参数加 nofb apm=off acpi=off pci=noacpi(关显卡缓冲侦测和电源管理,笔记本硬件常不兼容这些机制)

3.3 多重开机安装流程与管理(Option)

一台实体机装 CentOS 7 + Windows 7 共存(虚拟机图形性能不足时的选择)。鸟哥不建议新手玩——不能随便动开机扇区,妨碍”猛烈地玩 Linux”。

规划要点

  • MBR 不用 GPT:Win 8.1 以前的版本在非 UEFI 环境下不能从 GPT 分区开机
  • 反常规:先装 Linux 再装 Windows——为了精确控制分区布局(常规顺序是先 Windows 后 Linux,因为 Windows 会霸道覆盖 MBR)
  • 分区:/boot 2GB + / 50GB + C 盘 100GB(NTFS) + 延伸分区里一个 VFAT 共享数据盘

实操三步

  1. parted 预分区:安装界面按 Ctrl+Alt+F2 进 shell,手动切好所有分区再回安装流程(Ctrl+Alt+F6),分区页对号入座”重新格式化”+ 填挂载点
parted /dev/vda mklabel msdos             # 建 MBR 分区表
parted /dev/vda mkpart primary 1M 2G      # /boot
parted /dev/vda mkpart primary 2G 52G     # /
parted /dev/vda mkpart primary 52G 152G   # Windows C
parted /dev/vda mkpart extended 152G 100% # 延伸分区
parted /dev/vda mkpart logical 152G 100%  # 逻辑分区(共享盘)
parted /dev/vda print                     # 检查
  1. 救回 MBR:Windows 装完会霸占 MBR。用安装盘进 Troubleshooting → Rescue a CentOS system → Continue,原系统会挂到 /mnt/sysimage:
chroot /mnt/sysimage      # 切换到原系统环境
grub2-install /dev/vda    # 把 grub2 装回 MBR
exit; reboot
  1. 加 Windows 开机菜单:登录 Linux 后编辑 /etc/grub.d/40_custom
menuentry "Windows 7" {
   set root='(hd0,3)'     # 第一颗硬盘第 3 分区
   chainloader +1          # 开机权转交给该分区的 boot sector
}

然后 grub2-mkconfig -o /boot/grub2/grub.cfg 生效(顺便把 /etc/default/grub 里 GRUB_TIMEOUT 改长些)。

两大禁忌

  1. Windows 里最好把 Linux 分区取消挂载——文件资源管理器看到读不懂的分区会怂恿你”格式化”,一个手滑 Linux 就没了
  2. Linux 不能随便删:grub 开机菜单存在 Linux 的 /boot 里,删了 Linux,Windows 也开不了机

💡 多重开机的本质就是第二章讲的 boot loader 三大功能里的”转交(chainloader)“:MBR 里的 grub2 是总调度,Windows 项只是把控制权转交给 C 盘分区自己的 boot sector。理解了这个,救援和配置都不神秘。

关键命令

命令用途
dd if=centos7.iso of=/dev/sdc把 ISO 写入 U 盘做安装盘
inst.gpt(开机参数)强制安装程序使用 GPT 分区表
nofb apm=off acpi=off pci=noacpi(开机参数)笔记本安装失败时关闭省电/显卡侦测
parted /dev/vda mklabel msdos创建 MBR 分区表(mklabel gpt 则为 GPT)
parted /dev/vda mkpart primary 1M 2G创建分区(primary/extended/logical)
parted /dev/vda print查看分区结果
chroot /mnt/sysimage救援模式下切换到原系统环境
grub2-install /dev/vda把 grub2 开机管理程序安装到 MBR
grub2-mkconfig -o /boot/grub2/grub.cfg重新生成 grub2 开机菜单
cat /root/anaconda-ks.cfg查看本机安装时的 kickstart 记录