V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
outman87
V2EX  ›  Linux

救命! boot 分区被破坏!

  •  
  •   outman87 · 2022-06-10 14:06:24 +08:00 · 3472 次点击
    这是一个创建于 657 天前的主题,其中的信息可能已经有所发展或是发生改变。
    SUSE 误删 libc.so.6 。而后从光盘启动,选择 Automatic Repair(重大失误)。结果人工智障似乎把原先的 boot 分区( sda1 )给破坏了—filesystem type 变成了 swap (隔天才发现)。开机直接 grub >

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







    24 条回复    2022-06-13 17:33:09 +08:00
    XiLingHost
        1
    XiLingHost  
       2022-06-10 14:11:26 +08:00
    考虑使用 fat 的文件系统作为 /boot 的文件系统
    j0ck1e
        2
    j0ck1e  
       2022-06-10 14:14:16 +08:00
    先直接注释掉,没 swap 一样跑
    7RTDKSAK
        3
    7RTDKSAK  
       2022-06-10 14:17:15 +08:00
    你还有 suse iso ?

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

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

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

    另一种方案(没有多余备份情况下, 重新生成 boot 分区里的内容):
    U 盘启动 live CD, mount 好各种挂载点, chroot 到根分区
    1. 生成 fstab
    2. 重装 grub
    3. mkinitcpio 生成内核和 ramfs
    4. grub-mkconfig
    5. reboot
    ToBeHacker
        18
    ToBeHacker  
       2022-06-10 20:07:30 +08:00
    通过 grub 不是也能启动起来么,指明内核参数就可以了
    james122333
        19
    james122333  
       2022-06-10 22:06:30 +08:00 via Android
    ….................
    basncy
        20
    basncy  
       2022-06-10 22:51:27 +08:00
    @ToBeHacker 哪里看的半吊子教程? 你当企业版 linux 是学生玩的开发板啊?
    ToBeHacker
        21
    ToBeHacker  
       2022-06-11 22:02:55 +08:00
    @basncy 🤣
    ToBeHacker
        22
    ToBeHacker  
       2022-06-11 22:15:57 +08:00
    basncy
        23
    basncy  
       2022-06-12 00:11:21 +08:00
    @ToBeHacker 嗯, 书上就是这么说的:
    把 /boot/grub/menu.lst 或 /boot/grub/grub.cfg. 备份, 然后 rm -rf /boot ; reboot 进入 GRUB> 界面后, 照着 menu.lst 或 grub.cfg 的命令敲一遍试.
    kaiger
        24
    kaiger  
       2022-06-13 17:33:09 +08:00
    @basncy

    无法启动,我直接重装系统( oTo )
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1590 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 16:54 · PVG 00:54 · LAX 09:54 · JFK 12:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.