救命! boot 分区被破坏!

2022-06-10 14:06:24 +08:00
 outman87
SUSE 误删 libc.so.6 。而后从光盘启动,选择 Automatic Repair(重大失误)。结果人工智障似乎把原先的 boot 分区( sda1 )给破坏了—filesystem type 变成了 swap (隔天才发现)。开机直接 grub >

根据网路上的教程,新建一个 boot 分区( sdb1 ),grub 也装好了。但是 kernel 无法安装,也不能从原来的 boot 分区 cp—原因是 swap 无法 mount 。咋办呢?各位老师,救救萌新。从昨天早上折腾到现在...心塞。







3520 次点击
所在节点    Linux
24 条回复
XiLingHost
2022-06-10 14:11:26 +08:00
考虑使用 fat 的文件系统作为 /boot 的文件系统
j0ck1e
2022-06-10 14:14:16 +08:00
先直接注释掉,没 swap 一样跑
7RTDKSAK
2022-06-10 14:17:15 +08:00
你还有 suse iso ?

启动 iso ,安装到一块空 u 盘,注意一定要手动分区

然后拿新安装地 os 的启动分区来启动旧 rootfs ,只需要手写一下 grub.cfg 就行了

(我乱说地不负责)
e7
2022-06-10 14:17:28 +08:00
swap 功能上就不是能挂载的,换个文件系统比如 xfs 、ext4 格式化,然后拷贝文件过去,最后 grub-install 写引导记录就可以了,只是思路具体操作还是搜下
outman87
2022-06-10 14:22:50 +08:00
@XiLingHost 请教下 /dev/sda1 如何修改 fs type 呢。感谢。
j0ck1e
2022-06-10 14:27:11 +08:00
mkfs.ext4 /dev/sda1
@outman87
outman87
2022-06-10 14:27:57 +08:00
@e7 不知道怎么更改 fs type 。格式化吗?会不会把里面的数据给清空了?我是菜鸟...感谢
spike060
2022-06-10 14:28:19 +08:00
EFI 分区(/boot)使用 FAT32 文件系统,可用 mkfs.vfat 进行格式化,完成后可以将内核文件和 initramfs 文件拷贝至该目录。
最后使用 grub 命令行加载内核启动系统。
j0ck1e
2022-06-10 14:28:58 +08:00
@outman87 格式化当然清空了
XiLingHost
2022-06-10 14:30:16 +08:00
mkfs.vfat -F32
用这个命令来重新制作文件系统
FYFX
2022-06-10 14:44:27 +08:00
你这个其实和 arch 安装引导的过程差不多吧,如果是 UEFI 的话
先 mkfs.fat -F 32 /dev/efi_system_partition 格式化一下引导分区 https://wiki.archlinux.org/title/installation_guide#Format_the_partitions
然后挂载 efi 分区,再用 grub 安装应该就行了
https://wiki.archlinux.org/title/GRUB#Installation
outman87
2022-06-10 15:05:22 +08:00
@j0ck1e @spike060 谢谢几位老师,请问 mkfs 把 /dev/sda1 格式化以后,内核文件和 initramfs 文件从哪里拷贝过来?
j0ck1e
2022-06-10 15:08:54 +08:00
@outman87 从 iso 镜像里面拷贝
outman87
2022-06-10 15:30:46 +08:00
@FYFX 谢谢,我啃啃
outman87
2022-06-10 18:06:34 +08:00
@j0ck1e @XiLingHost @spike060 @e7 @7RTDKSAK 感谢各位大佬的相助。从虚拟机另一台 suse 11 上把 boot 目录拷贝到 U 盘,再挂载到故障系统上。进入救援模式,覆盖到 sdb1 的同名目录。重启后再用 grub 命令人工引导,启动成功了!哭了...
ShellRank
2022-06-10 18:31:11 +08:00
恭喜 op 渡劫成功
basncy
2022-06-10 18:45:09 +08:00
论从零开始安装 archlinux 的重要性.(学习 linux 启动流程)

另一种方案(没有多余备份情况下, 重新生成 boot 分区里的内容):
U 盘启动 live CD, mount 好各种挂载点, chroot 到根分区
1. 生成 fstab
2. 重装 grub
3. mkinitcpio 生成内核和 ramfs
4. grub-mkconfig
5. reboot
ToBeHacker
2022-06-10 20:07:30 +08:00
通过 grub 不是也能启动起来么,指明内核参数就可以了
james122333
2022-06-10 22:06:30 +08:00
….................
basncy
2022-06-10 22:51:27 +08:00
@ToBeHacker 哪里看的半吊子教程? 你当企业版 linux 是学生玩的开发板啊?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/858705

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX