Ubuntu在强制重启后出现问题,—[ end kernel panic – not syncing: Attempted to kill init! exit code=0x00000100]-
Ubuntu20.04 这是 Linux 系统内核崩溃(Kernel Panic)的调试界面,核心信息为 “Attempted to kill init! exit code=0x00000100”,同时显示了崩溃时的 CPU 寄存器状态、内核偏移地址等调试数据。其本质是系统的根进程(init)被意外终止,导致系统失去核心管理进程,触发内核强制终止以避免数据损坏。
![Ubuntu在强制重启后出现问题,---[ end kernel panic - not syncing: Attempted to kill init! exit code=0x00000100]-](https://img.dunling.com/blogimg/20251204/fcbc34b68f5e46a1a5921cd0daed2eba.jpeg)
前期准备:制作 Ubuntu Live CD/USB
一、所需工具与镜像
Ubuntu 20.04 镜像:从Ubuntu 官网下载(需与故障系统版本一致或兼容)。启动盘制作工具:
Windows:Rufus、balenaEtcher(选择 “DD 模式” 或 “写入镜像”)。Linux/macOS: 命令(终端执行:
dd,
sudo dd if=ubuntu-22.04.iso of=/dev/sdX bs=4M status=progress 为 U 盘设备名)。
/dev/sdX
Ubuntu Live CD 启动盘制作工具详解
Windows 系统推荐工具:Rufus
Rufus是 Windows 下制作 Linux 启动盘的最佳选择,轻量级 (仅几 MB)、开源且高效,支持 UEFI/GPT 和传统 BIOS 启动。
1. 下载安装
访问官方网站:https://rufus.ie/ 或中文镜像:https://rufus.org.cn/下载对应系统版本 (32 位 / 64 位) 的可执行文件 (无需安装,解压即可运行)
2. 详细制作步骤
步骤 操作说明 注意事项 ①插入 U 盘 将 8GB + 容量 U 盘插入电脑 (数据会被清空,提前备份) 推荐 USB 3.0 接口,速度更快 ②启动 Rufus 双击 Rufus.exe,界面自动识别 U 盘 若识别多个设备,从下拉菜单选择正确 U 盘 ③选择设备 在 “设备” 下拉框中选择目标 U 盘 (如 Kingston DataTraveler) 确认设备名称和容量正确 ④选择镜像 点击 “选择” 按钮,浏览并选中下载好的 Ubuntu ISO 文件 确保 ISO 文件完整 (可先校验 SHA256) ⑤设置分区方案 新电脑 (2012 年后) 选 “GPT”,旧电脑选 “MBR” 这是启动兼容性的关键设置 ⑥设置目标系统 GPT 选 “UEFI (非 CSM)”,MBR 选 “BIOS 或 UEFI (CSM)” 确保与目标电脑启动模式一致 ⑦其他设置 文件系统选 FAT32,簇大小保持默认 对 Linux 系统,此配置兼容性最佳 ⑧开始制作 点击 “开始” 按钮,确认警告 (U 盘将被格式化) 整个过程约 5-15 分钟,视文件大小而定
关键设置示例:
plaintext
设备: 可移动磁盘 (F:) 分区类型: GPT 目标系统类型: UEFI(非CSM) 文件系统: FAT32(FAT) 簇大小: 4096字节
3. 常见问题与解决方案
问题 1:制作完成后无法从 U 盘启动
检查 BIOS/UEFI 设置:确保已禁用 “Secure Boot”,并将 USB 设为第一启动项重新制作:在 Rufus 中尝试切换分区方案 (GPT ↔ MBR) 或目标系统类型
问题 2:写入速度慢
使用 USB 3.0 接口 (蓝色接口)在 Rufus 中尝试调整 “簇大小”(通常 4096 字节最佳)
macOS 系统推荐工具:balenaEtcher
balenaEtcher(原 Etcher) 是跨平台工具,macOS 下制作启动盘的首选,界面简洁,操作直观。
1. 下载安装
官网:https://www.balena.io/etcher/App Store 搜索 “balenaEtcher” 直接安装
2. 详细制作步骤
插入 8GB+ U 盘启动 balenaEtcher点击 “Select image”(选择镜像),找到下载好的 Ubuntu ISO点击 “Select target”(选择目标),选中插入的 U 盘点击 “Flash!”(开始烧录),确认警告 (数据将被删除)等待进度条完成 (约 5-15 分钟),显示 “Flash Complete”(烧录完成) 后安全移除 U 盘
macOS 特有注意事项:
若提示 “无法打开 balenaEtcher,因为 Apple 无法检查其是否包含恶意软件”:
打开系统设置→安全性与隐私→通用在 “允许从以下位置下载的 App” 中选择 “App Store 和被认可的开发者”若仍无法打开,点击 “仍要打开” 按钮 (需按住 Control 键点击应用图标)Linux 系统推荐工具:dd 命令 (推荐) 或 Startup Disk Creator
1. 使用 dd 命令 (所有 Linux 发行版通用,推荐)
优势:无需安装额外工具,原生支持,最可靠的底层写入方式
步骤:
bash
运行
# 1. 插入U盘,查看设备名称 lsblk # 2. 卸载U盘(确保未挂载) sudo umount /dev/sdX # 替换X为你的U盘设备字母(如sdb) # 3. 使用dd命令写入镜像(注意:命令中的"of="必须是设备名而非挂载点) sudo dd if=/path/to/ubuntu.iso of=/dev/sdX bs=4M status=progress # 4. 等待完成(显示进度条,速度取决于U盘读写性能) # 5. 安全移除U盘 sudo sync关键参数解释:
: input file (输入文件,即 ISO 镜像)
if=: output file (输出文件,即 U 盘设备,如 /dev/sdb)
of=: block size (块大小,建议 4M 以提高速度)
bs=4M: 显示进度条 (需 GNU coreutils 支持)
status=progress注意:若使用 Ubuntu 等桌面环境,可先在文件管理器中卸载 U 盘,再执行 dd 命令
2. 使用 Startup Disk Creator (Ubuntu 官方图形工具)
步骤:
打开应用菜单,搜索 “Startup Disk Creator”(或 “USB 启动盘创建器”)点击 “Other…” 选择下载好的 ISO 文件在 “Disk to use” 下拉框中选择 U 盘点击 “Make Startup Disk”(创建启动盘)输入用户密码,确认警告 (数据将被删除)等待完成 (进度条显示 100% 后即可使用)
局限性:仅适用于 Ubuntu 官方 ISO,对其他 Linux 发行版支持有限
四、跨平台通用工具:balenaEtcher (强烈推荐)
无论 Windows、macOS 还是 Linux,都可使用同一工具,操作方法完全一致,是多系统环境的最佳选择。
统一操作流程:
下载对应平台版本 (官网: https://www.balena.io/etcher/)启动应用三步完成:选择镜像→选择设备→点击 “Flash!”
优势:
自动校验写入完整性,确保启动盘可靠支持 ISO、IMG、ZIP 等多种镜像格式,无需解压直观界面,适合所有水平用户内置进度显示和错误检测,成功率高
制作工具对比表
工具 适用系统 优势 劣势 推荐场景 Rufus Windows 速度快、选项丰富、支持 UEFI/BIOS 双启动 仅 Windows 可用 Windows 用户制作 Linux 启动盘 balenaEtcher Windows/macOS/Linux 跨平台统一体验、操作简单、自动校验 功能相对基础,自定义选项少 多系统环境、新手用户 dd 命令 Linux/macOS 原生支持、最底层写入、无依赖 命令行操作,需谨慎 (误操作可能损坏硬盘) Linux 专业用户、需要精确控制 Startup Disk Creator Ubuntu 官方工具,与 Ubuntu 集成好 仅支持 Ubuntu 官方 ISO Ubuntu 用户制作官方启动盘 制作成功关键因素与注意事项
1. U 盘选择与准备
容量要求:Ubuntu 标准 ISO 约 2-4GB,建议使用8GB+ U 盘 (预留空间)质量优先:使用知名品牌 U 盘 (如 SanDisk、Kingston),避免使用劣质扩容盘数据备份:制作前必须备份 U 盘中重要数据,制作过程会完全格式化
2. 镜像验证 (重要)
下载完成后,务必校验 ISO 文件完整性:
Windows: 使用 HashTab 等工具计算 SHA256Linux/macOS: 在终端执行
,与官网提供的校验值对比若校验失败,重新下载镜像 (文件损坏会导致启动失败)
sha256sum /path/to/ubuntu.iso3. 启动设置 (使用前必备)
插入制作好的 U 盘,重启电脑开机时按对应按键进入 BIOS/UEFI 设置 (常见按键: F2、F10、F12、Del,屏幕会提示)禁用 “Secure Boot”(如 UEFI 模式)设置 “从 USB 设备启动” 为第一启动项保存并退出,电脑将从 U 盘启动
二、第一步:从 Live CD/USB 启动故障电脑
1. 进入 BIOS/UEFI 设置
开机时按快捷键进入启动项选择(不同主板快捷键:F2、F10、F12、Del,屏幕会提示)。禁用 “Secure Boot”(部分电脑需关闭此选项才能识别 Live 介质),设置 “从 USB/CD-ROM 启动” 为第一优先级。
我的电脑是dell, 开机时要一直按F12,成功进入的界面,选择u盘,enter:
![Ubuntu在强制重启后出现问题,---[ end kernel panic - not syncing: Attempted to kill init! exit code=0x00000100]-](https://img.dunling.com/blogimg/20251204/bc4a60fd1b2345c1bdb56750c252347a.jpeg)
2. 进入 Live 试用环境
选择 “Try or Install Ubuntu”(在选择try ubuntu,直接进入临时 Ubuntu 桌面)。
![Ubuntu在强制重启后出现问题,---[ end kernel panic - not syncing: Attempted to kill init! exit code=0x00000100]-](https://img.dunling.com/blogimg/20251204/f0c9578fe0c64ac9be7c23b014b7b5f0.jpeg)
![Ubuntu在强制重启后出现问题,---[ end kernel panic - not syncing: Attempted to kill init! exit code=0x00000100]-](https://img.dunling.com/blogimg/20251204/27e36a13a87742cbbeca504ab4d1e07b.jpeg)
等待桌面加载完成后,打开 终端(快捷键:Ctrl+Alt+T),开始后续修复。
注:如果进去界面是黄色的
这是Live 环境的显卡驱动不兼容问题(Ubuntu Live 默认的通用显卡驱动和你的戴尔主机硬件不匹配,导致显示混乱),需要通过添加内核参数解决,步骤如下:
步骤 1:重启 U 盘并编辑 GRUB 启动参数
重启这台戴尔主机,再次从 U 盘启动;当出现 GRUB 启动菜单(显示 “Try or Install Ubuntu” 的界面)时,不要直接按回车,按键盘上的
键进入启动参数编辑模式;
e步骤 2:添加显卡兼容参数(
)
nomodeset在编辑界面中,找到以
开头的行(内核启动参数行);
linux /boot/vmlinuz-xxx-generic在这一行的末尾(保持空格分隔)添加参数:
示例(修改后):
nomodesetlinux /casper/vmlinuz file=/cdrom/preseed/ubuntu.seed maybe-ubiquity quiet splash nomodeset ---按
启动 U 盘系统;
Ctrl+X步骤 3:验证显示是否恢复正常
启动后,Ubuntu Live 的桌面会切换为基本显卡驱动(VESA 模式),黄色模糊的界面会恢复为正常的 Ubuntu 桌面(清晰的图标和文字)。
若
无效(极少情况)
nomodeset可尝试其他显卡兼容参数(根据主机显卡类型选择):
若主机用AMD 显卡:添加
若主机用NVIDIA 显卡:添加
radeon.modeset=0通用兼容参数:添加
nouveau.modeset=0
acpi_osi=linux后续操作
显示恢复正常后,继续按之前的修复步骤(识别根分区、修复文件系统、chroot 修复等)即可。
这个问题的核心是Live 环境的通用驱动无法适配服务器 / 主机的专业显卡,
会强制系统使用基础显示驱动,从而解决显示混乱的问题。
nomodeset
三、第二步:识别故障系统分区(关键!)
需先确认原系统的 根分区()和 EFI 分区(UEFI 启动需用到),避免操作错误分区导致数据丢失。
/
1. 查看分区列表
执行以下命令,通过 “大小”“文件系统类型” 判断目标分区:
# 方法1:显示分区详情(推荐,含文件系统类型)
lsblk -f
# 方法2:显示分区表(含分区编号)
sudo fdisk -l
2. 分区判断
| 分区类型 | 特征(参考) | 常见设备名 |
|---|---|---|
| 根分区(/) | 大小较大(如 50GB+),文件系统为 或 |
、 |
| EFI 分区(UEFI) | 大小较小(100MB-512MB),文件系统为 |
、 |
| BIOS 启动(无 EFI) | 无单独 EFI 分区,根分区直接引导 | |
记录目标分区:例如根分区为 ,EFI 分区为
/dev/sda2(后续命令需替换为实际设备名)。
/dev/sda1
我的电脑的磁盘大小与下图中一致,type是linux的是根分区,就是nvme0n1p5
![Ubuntu在强制重启后出现问题,---[ end kernel panic - not syncing: Attempted to kill init! exit code=0x00000100]-](https://img.dunling.com/blogimg/20251204/1e1e3257b9384cce8ddc1f83f943fcb2.png)
3. 如何判断是不是根分区
根据你的描述,根分区是
大概率是没问题的!以下是具体分析和验证步骤,帮你 100% 确认:
/dev/nvme0n1p5一、为什么这个判断合理?
硬盘类型正常:
是 M.2 接口的固态硬盘(现代电脑主流配置),比传统
nvme0n1硬盘更常见于新主机,分区编号从
sda开始(如
p1=EFI 分区、
p1= 恢复分区、
p2= 根分区),符合 UEFI 启动的分区布局逻辑;容量判断核心:你是通过 “大小” 筛选的 —— 根分区通常是内置硬盘中容量最大的分区(几十 GB~ 几百 GB),而
p5若满足这个特征,基本可以锁定;分区编号合理:UEFI 启动的电脑,
nvme0n1p5通常是 EFI 分区(小容量,
nvme0n1p1格式),
vfat~
p2可能是恢复分区、保留分区等,
p4作为根分区是非常典型的布局。
p5二、3 步快速验证(确保万无一失)
执行以下命令,验证
是否为真正的根分区:
/dev/nvme0n1p5步骤 1:再次确认文件系统类型(关键)
bash
运行
lsblk -f | grep nvme0n1p5若输出中
列显示
FSTYPE或
ext4(Ubuntu 根分区默认格式),则进一步确认;若显示
btrfs(EFI 分区)、
vfat(Windows 分区)或无格式,则不是根分区。
ntfs步骤 2:通过 UUID 交叉验证(更精准)
根分区的 UUID 会记录在
中,可通过挂载后查看:
/etc/fstabbash
运行
# 临时挂载 nvme0n1p5 到 /mnt/test sudo mount /dev/nvme0n1p5 /mnt/test # 查看该分区是否包含系统核心目录(最直接的验证) ls /mnt/test | grep -E "bin|etc|home|root|usr"
若输出包含
(系统命令目录)、
bin(配置文件目录)、
etc(用户数据目录),则 100% 是根分区;若目录为空或只有零散文件,则不是。
home步骤 3:卸载临时挂载(验证后必做)
bash
运行
sudo umount /mnt/test三、如果验证通过,后续操作直接执行!
确认
是根分区后,继续按之前的修复流程操作:
/dev/nvme0n1p5修复文件系统(根据 FSTYPE 选择命令):
# 若 FSTYPE 是 ext4(最常见) sudo fsck -fy /dev/nvme0n1p5 # 若 FSTYPE 是 btrfs(极少数情况) sudo btrfs check --repair /dev/nvme0n1p5后续的
修复、重建 initramfs 等操作,均以
chroot作为根分区执行即可。
/dev/nvme0n1p5
四、第三步:修复文件系统(核心解决 “init 进程损坏” 根源)
强制重启常导致根分区文件系统损坏,需先通过 修复(需确保分区未挂载)。
fsck
1. 卸载已挂载的根分区(若自动挂载)
# 先查看是否挂载:若 /mnt 下有内容,说明已挂载
df -h | grep /dev/nvme0n1p5
# 若已挂载,执行卸载(替换为你的根分区)
sudo umount /dev/nvme0n1p5
2. 执行文件系统修复
根据根分区的文件系统类型选择命令, 表示 “自动确认所有修复操作”,无需手动按
-y:
y
# 1. 若根分区为 ext4(最常见)
sudo fsck -fy /dev/nvme0n1p5
# 2. 若根分区为 btrfs(需用专用命令)
sudo btrfs check --repair /dev/nvme0n1p5
# 3. 若修复后提示“需要强制检查”,加 -f 参数
sudo fsck -fvy /dev/nvme0n1p5 # -v 显示详细修复过程
3. 修复验证
若修复完成后无 “未修复错误” 提示,说明文件系统已恢复;若提示 “严重损坏无法修复”,需先备份数据(见下文注意事项)。
五、第四步:挂载原系统分区并进入 chroot 环境
通过 可 “切换到原系统的根目录”,相当于在 Live 环境中直接操作故障系统,后续修复引导、重建 initramfs 需此步骤。
chroot
1. 挂载根分区到临时目录(/mnt)
# 挂载根分区(替换为你的根分区)
sudo mount /dev/nvme0n1p5 /mnt
2. 挂载 EFI 分区(仅 UEFI 启动需执行)
若为 BIOS 启动,跳过此步:
# 先创建 EFI 挂载目录
sudo mkdir -p /mnt/boot/efi
# 挂载 EFI 分区(替换为你的 EFI 分区)
sudo mount /dev/nvme0n1p5 /mnt/boot/efi
3. 绑定系统关键目录(确保 chroot 环境正常工作)
将 Live 环境的 (设备文件)、
/dev(进程信息)、
/proc(系统内核信息)绑定到原系统,否则 chroot 后无法执行命令:
/sys
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
4. 进入 chroot 环境(关键切换)
执行后,终端提示符会变为 ,表示已进入原系统的根目录:
root@ubuntu:/#
sudo chroot /mnt
六、第五步:修复核心故障(init 进程、引导、initramfs)
在 chroot 环境中,针对 “init 进程损坏”“引导配置错误”“initramfs 失效” 三个核心问题修复。
1. 恢复 init 进程(针对 “Attempted to kill init!”)
Ubuntu 15.04+ 用 替代传统 init,
systemd 实际是软链接,若链接损坏或被替换(如交叉编译误操作),需重建:
/sbin/init
# 1. 删除损坏的 init 文件(若存在)
rm -f /sbin/init
# 2. 重建软链接(指向系统默认的 systemd)
ln -s /lib/systemd/systemd /sbin/init
# 3. 验证:若显示“/sbin/init -> /lib/systemd/systemd”,说明成功
ls -l /sbin/init
2. 重建 initramfs 镜像(解决 “内核无法加载根分区”)
initramfs 损坏会导致内核启动时无法找到根分区,需重建:
# 1. 查看当前系统已安装的内核版本(选择最新或之前正常的版本)
ls /boot/vmlinuz-* # 输出如:vmlinuz-6.8.0-52-generic
# 2. 重建指定内核的 initramfs(替换为你的内核版本)
update-initramfs -u -k 6.8.0-52-generic
# 3. 若需重建所有内核的 initramfs(推荐,避免遗漏)
update-initramfs -u -k all
![Ubuntu在强制重启后出现问题,---[ end kernel panic - not syncing: Attempted to kill init! exit code=0x00000100]-](https://img.dunling.com/blogimg/20251204/8b964d1cd60d4c2a86e8b608589a82d0.jpeg)
注:ls /boot/vmlinuz-*执行结果出现两个:/boot/vmlinuz-5.14.0-1059-oem ,/boot/vmlinuz-5.15.0-71-generic
第一步:优先修复「当前正在使用的内核」(推荐)
先确认系统默认启动的内核(避免修复了未使用的内核,导致修复无效):
bash
运行
# 在chroot环境中执行,查看GRUB默认启动的内核 grep "menuentry " /boot/grub/grub.cfg | grep -Eo 'vmlinuz-[0-9.]+-[a-z0-9]+' | head -1输出结果会显示默认内核(比如
),优先修复这个版本。
vmlinuz-5.15.0-71-generic第二步:执行 initramfs 重建(两个内核都要执行)
无论默认是哪个,两个内核都修复一遍更稳妥,命令如下:
1. 修复 5.15.0-71-generic(通用内核,更常用)
update-initramfs -u -k 5.15.0-71-generic2. 修复 5.14.0-1059-oem(厂商定制内核,适合硬件适配)
update-initramfs -u -k 5.14.0-1059-oem
3. 修复 GRUB 引导(解决 “无法识别系统”)
若引导配置损坏,需重新安装 GRUB 到硬盘,并更新配置:
# 1. 若为 BIOS 启动(无 EFI 分区):安装 GRUB 到硬盘(替换为你的硬盘,如 /dev/sda)
grub-install /dev/sda
# 2. 若为 UEFI 启动(有 EFI 分区):指定 EFI 目录安装
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu
# 3. 更新 GRUB 配置(扫描系统内核,生成新引导菜单)
update-grub
4. 修复系统包依赖(可选,若故障因更新中断导致)
若之前有系统更新中断,可能存在包依赖损坏,执行:
# 修复未完成的包配置
dpkg --configure -a
# 修复依赖缺失
apt install -f
# (可选)更新系统包(确保内核与依赖匹配)
apt update && apt upgrade -y
七、第六步:退出 chroot 并重启测试
1. 退出 chroot 环境
exit # 回到 Live 环境的终端
2. 卸载所有挂载点(避免数据残留)
# 先卸载 EFI 分区(UEFI 启动需执行)
sudo umount /mnt/boot/efi
# 再卸载根分区及绑定目录
sudo umount /mnt/dev
sudo umount /mnt/proc
sudo umount /mnt/sys
sudo umount /mnt
3. 重启电脑
拔掉 Live CD/USB,执行 。电脑会从硬盘启动,观察是否能正常进入 Ubuntu 系统(无内核崩溃提示即修复成功)。
sudo reboot
看到下图显示拔出U盘,按enter
![Ubuntu在强制重启后出现问题,---[ end kernel panic - not syncing: Attempted to kill init! exit code=0x00000100]-](https://img.dunling.com/blogimg/20251204/6773f25529ec43ec8459fa6fe1564248.jpeg)
![Ubuntu在强制重启后出现问题,---[ end kernel panic - not syncing: Attempted to kill init! exit code=0x00000100]-](https://img.dunling.com/blogimg/20251204/232cb0e15c37473c99d9456b23306b7c.jpeg)
点continue即可
![Ubuntu在强制重启后出现问题,---[ end kernel panic - not syncing: Attempted to kill init! exit code=0x00000100]-](https://img.dunling.com/blogimg/20251204/5c24407742964d9eae9a8e0893bbe3c8.png)
八、一些报错:
I/O error:
![Ubuntu在强制重启后出现问题,---[ end kernel panic - not syncing: Attempted to kill init! exit code=0x00000100]-](https://img.dunling.com/blogimg/20251204/2c6a5b8f9fab477387e4dd8245557ab7.jpeg)
这个报错是系统启动时尝试访问故障存储设备
导致的(错误提示 “access beyond end of device” 表示访问超出设备容量范围,说明该设备分区表损坏或硬件故障),系统因持续读取故障设备而卡住。解决核心是让系统启动时完全跳过这个故障设备,步骤如下:
/dev/sdd步骤 1:再次从 Ubuntu Live 盘启动
插入 Live U 盘,重启主机后按
选择 U 盘启动;进入 Live 环境时,按
F12在 GRUB 中添加
e参数(避免界面黄色模糊),再按
nomodeset启动。
Ctrl+X步骤 2:挂载原系统根分区,修改自动挂载配置
系统启动时会读取
文件自动挂载设备,需注释其中
/etc/fstab相关的挂载项:
/dev/sdd# 1. 挂载原系统根分区(你的根分区是/dev/nvme0n1p5) sudo mount /dev/nvme0n1p5 /mnt # 2. 编辑fstab文件(系统自动挂载配置) sudo nano /mnt/etc/fstab在
编辑器中:
nano找到包含
(或对应 UUID)的行(比如
/dev/sdd);在该行开头添加
UUID=xxxx /media/usb ext4 defaults 0 0注释掉(示例:
#);按
# UUID=xxxx /media/usb ext4 defaults 0 0保存,
Ctrl+O退出。
Ctrl+X步骤 3:禁用系统对故障设备的自动扫描(可选,彻底解决)
若注释
后仍卡住,说明系统启动时会自动扫描所有存储设备,需临时屏蔽
fstab:
/dev/sdd# 1. 挂载原系统的/dev目录(用于修改设备规则) sudo mount --bind /dev /mnt/dev # 2. 进入chroot环境 sudo chroot /mnt # 3. 创建udev规则,屏蔽sdd设备 echo 'SUBSYSTEM=="block", KERNEL=="sdd*", OPTIONS+="ignore_device"' > /etc/udev/rules.d/99-hide-sdd.rules # 4. 退出chroot环境 exit步骤 4:卸载挂载并重启
# 1. 卸载原系统的/dev、根分区 sudo umount /mnt/dev /mnt # 2. 重启主机,拔掉Live U盘 sudo reboot
Read-only file system:
![Ubuntu在强制重启后出现问题,---[ end kernel panic - not syncing: Attempted to kill init! exit code=0x00000100]-](https://img.dunling.com/blogimg/20251204/1215e1bf26d34ca989932702a75c364b.jpeg)
1检查是否硬件问题:
第一步:先尝试再次恢复根分区读写(验证是否为硬件问题)
在当前命令行中执行:
sudo mount -o remount,rw /若提示 “cannot remount /read-write, is write-protected”→ 磁盘硬件故障(系统强制只读保护);若成功恢复读写→ 说明文件系统仍有残留错误,需再次离线修复。
第二步:检查磁盘硬件健康状态(关键!)
若第一步失败,必须通过 Live 盘检查磁盘 SMART 状态(硬件故障是反复只读的最常见根源):
插入 Ubuntu Live U 盘,重启后按
选择 U 盘启动;进入 Live 环境后,执行:
F12bash
运行
# 检查NVMe磁盘(/dev/nvme0n1是你的系统盘) sudo smartctl -a /dev/nvme0n1重点看
:
SMART overall-health self-assessment test result
显示→ 磁盘硬件故障,必须更换 NVMe 磁盘(软件修复无法解决,更换后需重装系统);显示
FAILED→ 继续第三步,彻底修复文件系统。
PASSED第三步:若硬件正常,执行 “坏块扫描 + 深度修复”
若磁盘 SMART 状态正常,说明根分区存在物理坏块,需执行坏块扫描(会标记坏块,避免系统使用):
bash
运行
# 卸载根分区(Live环境中) sudo umount /dev/nvme0n1p5 # 扫描并标记坏块(耗时较长,耐心等待) sudo e2fsck -fcck /dev/nvme0n1p5
:扫描坏块;
-c:双重扫描;
-cc:保留现有坏块表;
-k:强制检查。
-f![]()
2文件修改:
若磁盘 SMART 状态为
(硬件正常),反复出现 “只读文件系统” 是系统启动组件 / 挂载配置异常导致的,需通过 Live 盘修复系统启动环境:
PASSED操作步骤(在 Ubuntu Live 盘环境中执行):
挂载根分区及系统目录
# 挂载根分区(/dev/nvme0n1p5)到/mnt sudo mount /dev/nvme0n1p5 /mnt # 绑定系统必要目录(进入chroot的前提) sudo mount --bind /dev /mnt/dev sudo mount --bind /sys /mnt/sys sudo mount --bind /proc /mnt/proc sudo mount --bind /run /mnt/run进入目标系统的 chroot 环境
sudo chroot /mnt检查并修复根分区挂载配置(/etc/fstab)确保根分区的挂载选项为 “读写模式”:
# 编辑fstab文件 nano /etc/fstab找到根分区(对应
)的行,确保挂载选项为
/dev/nvme0n1p5(包含
defaults,即读写),示例:
rw![]()
UUID=8768cdf5-73ec-4292-9aa2-83d57815f148 / ext4 defaults 0 1按
保存,
Ctrl+O退出。
Ctrl+X修复启动镜像(initramfs)重新生成系统启动镜像,解决启动时错误挂载为只读的问题:
update-initramfs -u -k all重装系统核心组件(修复可能的损坏)
# 重装systemd(负责系统挂载的核心组件) apt install --reinstall systemd # 重装ubuntu基础系统组件 apt install --reinstall ubuntu-minimal退出 chroot 并卸载挂载
exit # 退出chroot sudo umount /mnt/run /mnt/proc /mnt/sys /mnt/dev /mnt重启系统
sudo reboot
![Ubuntu在强制重启后出现问题,---[ end kernel panic - not syncing: Attempted to kill init! exit code=0x00000100]-](https://img.dunling.com/blogimg/20251204/c773af2fd309496e8c872cee2d547ada.png)
![Ubuntu在强制重启后出现问题,---[ end kernel panic - not syncing: Attempted to kill init! exit code=0x00000100]-](https://img.dunling.com/blogimg/20251204/706a2c4f2aeb492e92dfd2bc1b084083.jpeg)
![Ubuntu在强制重启后出现问题,---[ end kernel panic - not syncing: Attempted to kill init! exit code=0x00000100]-](https://img.dunling.com/blogimg/20251204/6d9131a7321546f5be46be6cabbb14a9.jpeg)