那天下午,行版我盯着用了五年的迁徙情结Ubuntu桌面发呆。熟悉的导航紫色壁纸角落已经出现了像素损坏,就像老朋友的行版衬衫磨破了边。突然萌生的迁徙情结念头像野草一样疯长:“换个发行版试试?”这个决定让我在接下来两周里,和GRUB这个老朋友打了无数次交道——它时而像固执的导航守门人,时而像可靠的行版向导。
为什么我们总想换个“新家”?迁徙情结
在咖啡厅见到搞运维的老张,他听说我要换发行版,导航眼镜片后闪着狡黠的行版光:“又痒痒了?我今年已经换了三个发行版了。”确实,迁徙情结Linux用户多少都有这种“迁徙情结”:
- 软件包管理之争:有人受不了apt的导航依赖地狱,转头投入pacman的行版怀抱
- 桌面环境的诱惑:GNOME的极简派和KDE的功能党永远在互相安利
- 滚动更新的魅力:总有人想体验“永远在最新版本”的刺激感
发行版 | 软件包管理 | 默认桌面 | 更新策略 |
Ubuntu | apt/dpkg | GNOME | 半年周期 |
Fedora | dnf/rpm | GNOME | 半年滚动 |
Arch | pacman | 无默认 | 持续滚动 |
当迁徙遇到GRUB:启动器的前世今生
记得第一次在实体机安装Linux时,安装程序问我要不要把GRUB装到MBR。迁徙情结当时手一抖选了“否”,导航结果第二天抱着笔记本去电脑城重装系统——这就是我交的第一笔“GRUB学费”。
GRUB的三大生存法则
- 多系统和平共处:它能记住每个操作系统藏在哪个硬盘分区
- 内核版本管理员:即使你装了十个内核版本,它也能给你列菜单
- 急救小能手:当系统启动失败时,那个grub>提示符就是最后的希望
迁徙前的生存指南
迁移当天,我像准备野外露营一样列了张清单:
- 用
dd
把整个EFI分区备份到移动硬盘 - 把/etc/fstab打印出来贴在显示器边框上
- 在手机里存好LiveUSB的创建教程——别问我怎么想到的
分区表的罗生门
新旧系统交替时最容易翻车的就是分区方案。我的500GB固态硬盘现在看起来像块瑞士奶酪:
- 前1GB留给EFI系统分区(ESP)
- 中间200GB是Ubuntu留下的ext4
- 最后50GB藏着Windows的NTFS
- 新划出来的120GB准备迎接Arch
实战迁移:当GRUB遇上新邻居
安装程序进行到“引导加载程序”这一步时,我的手悬在回车键上三分钟。想起《Linux就该这么学》里的警告:“错误的引导设置可能让所有系统消失。”
GRUB重装四部曲
- 进入新系统的Live环境
chroot
到新系统分区- 运行
grub-install /dev/sda
- 用
update-grub
生成新配置
当熟悉的GRUB菜单重新出现,包含新旧系统时,那种成就感不亚于拼好2000块的拼图。
那些年我们踩过的GRUB坑
症状 | 常见原因 | 急救命令 |
黑屏无菜单 | GRUB未安装 | grub-install |
进入救援模式 | 分区UUID变更 | set root=(hd0,gpt2) |
内核panic | initrd未更新 | mkinitcpio -P |
配置文件里的文字游戏
有次更新内核后启动失败,发现/boot/grub/grub.cfg里写着linux /vmlinuz-5.15-generic
,而实际文件名是vmlinuz-5.15.0-76-generic
。原来update-grub
时有个符号链接断了,这个发现让我觉得自己像个侦探。
当GRUB遇上UEFI新世界
现在的电脑基本都转向UEFI启动,这让事情变得有点不同。有次在GPT硬盘上装系统,GRUB死活不认,后来发现是忘了创建BIOS启动分区。现在的ESP分区就像机场的中转大厅:
- 每个系统都在这里存了登机牌
- GRUB是地勤,负责核对每个航班的乘客
efibootmgr
成了值机柜台的控制面板
窗外的夕阳把键盘染成金色,新系统的终端提示符闪烁着。我抿了口凉透的咖啡,在笔记里写下:“第7次GRUB修复成功”。迁移就像搬家,总有些小物件会掉在旧房子的角落,但好在有GRUB这个尽职的导航员,永远记得所有系统藏在哪个房间。