3.1 本练习机的规划——尤其是分区参数
这一章把第二章的理论落地成一台真机器,全书后续所有章节都在这台练习机上操作。
虚拟机硬件(KVM 搭建):
- CPU:宿主机直通(Intel i7 2600)
- 内存:约 1.2GB
- 磁盘:40GB VirtIO 磁盘 → 设备名是
/dev/vda(呼应第二章:虚拟机磁盘不叫 sda);另挂一颗 2GB IDE 磁盘(/dev/sda)纯留作测试 - 网卡:桥接(bridge)模式,VirtIO 芯片
- 新手建议用 VirtualBox 照做即可
分区方案(要背下来,后面章节都基于它):
| 所需目录/设备 | 容量 | 文件系统 | 分区格式 |
|---|---|---|---|
| BIOS boot | 2MB | 系统自订 | 主分区 |
| /boot | 1GB | xfs | 主分区 |
| / | 10GB | xfs | LVM |
| /home | 5GB | xfs | LVM |
| swap | 1GB | swap | LVM |
三个刻意的设计:
- 强制 GPT:40GB < 2TB,系统默认会用 MBR,但为了练新技术,安装时加参数强制 GPT。GPT 下没有主/延伸/逻辑之分,但传统 BIOS + GPT 开机需要一个 2MB 的 BIOS boot 分区(放 grub 第一阶段装不下的开机代码)
- /、/home、swap 用 LVM 管理:LVM 是可弹性扩缩容量的机制(第十四章细讲),CentOS 默认就用它
- 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 磁盘分区实操(重头戏)
- “安装目的地”里勾选正确的硬盘(有两颗!),选”我将配置分区”进手动模式
- 旧系统的分区先删掉(点减号,可一键”删除它”连带删光)
- 逐个建分区,设备类型三选一:
- 标准分区:普通分区(/dev/vda1 这种)——biosboot 和 /boot 用这个
- LVM:弹性容量管理——/、/home、swap 用这个,记得把卷组容量改成”固定 30G”留余地
- LVM 紧张供应:thin provisioning,用多少才分配多少
- 文件系统怎么选:
- xfs:CentOS 7 默认,大型服务器出身,大容量磁盘管理强、格式化飞快 → 主力
- ext2/3/4:Linux 老将,大磁盘时代渐退役
- swap:不需要挂载点;BIOS Boot:GPT 专用;vfat:Linux/Windows 双系统交换数据用
- 完成时核对:剩约 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 共享数据盘
实操三步:
- 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 # 检查- 救回 MBR:Windows 装完会霸占 MBR。用安装盘进 Troubleshooting → Rescue a CentOS system → Continue,原系统会挂到 /mnt/sysimage:
chroot /mnt/sysimage # 切换到原系统环境
grub2-install /dev/vda # 把 grub2 装回 MBR
exit; reboot- 加 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 改长些)。
两大禁忌:
- Windows 里最好把 Linux 分区取消挂载——文件资源管理器看到读不懂的分区会怂恿你”格式化”,一个手滑 Linux 就没了
- 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 记录 |