Distributions
› Ubuntu
› Fedora
› CentOS
中文资源站
› 网易开源镜像站
outman87
V2EX  ›  Linux

救命! boot 分区被破坏!

  •  
  •   outman87 · Jun 10, 2022 · 5203 views
    This topic created in 1607 days ago, the information mentioned may be changed or developed.
    SUSE 误删 libc.so.6 。而后从光盘启动,选择 Automatic Repair(重大失误)。结果人工智障似乎把原先的 boot 分区( sda1 )给破坏了—filesystem type 变成了 swap (隔天才发现)。开机直接 grub >

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







    24 replies  •  2022-06-13 17:33:09 +08:00
    KagurazakaNyaa
    KagurazakaNyaa
    Jun 10, 2022
    1
    考虑使用 fat 的文件系统作为 /boot 的文件系统
    j0ck1e
    j0ck1e
    Jun 10, 2022
    2
    先直接注释掉,没 swap 一样跑
    7RTDKSAK
    7RTDKSAK
    Jun 10, 2022
    3
    你还有 suse iso ?

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

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

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

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

    无法启动,我直接重装系统( oTo )
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3152 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 65ms · UTC 04:32 · PVG 12:32 · LAX 20:32 · JFK 23:32
    ♥ Do have faith in what you're doing.