news 2026/7/10 14:53:57

蓝易云 - 无法修改BIOS情况下Linux切换根目录到其他磁盘

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
蓝易云 - 无法修改BIOS情况下Linux切换根目录到其他磁盘

在无法改 BIOS 启动顺序的前提下,把 Linux 根目录(/)切到另一块磁盘,最稳的策略是:让机器继续从“当前会被 BIOS 固定优先启动的磁盘”引导(保留 /boot 或 ESP + GRUB),但把真正的根文件系统 / 放到新盘。这样 BIOS 不需要配合,系统仍能“按你设计的链路”启动。✅🙂


核心原理(你要抓住的杠杆)

  • BIOS 固定启动的是引导盘(有 GRUB、/boot 或 UEFI 的 ESP 分区)。

  • Linux 内核启动后,通过参数root=UUID=...去挂载真正的根分区。

  • 所以我们要做的是:不动 BIOS,只改“root 指向谁”,并保证 initramfs 能识别新盘驱动/阵列模块。


工作流程(文本流程图,vditor/Markdown 可用)

现状:BIOS 固定启动 DiskA | v DiskA 保留:GRUB + /boot(或 ESP) | v 内核参数 root=UUID -> 指向 DiskB:/ (新根分区) | v initramfs 加载磁盘/RAID/LVM 驱动 -> 挂载新 / | v systemd 启动完成 -> 验证 / 在 DiskB

**解释:**这张流程图表达的是“启动链不变、根盘可变”。BIOS 不让你改,就别跟 BIOS 较劲,把控制点放在 GRUB 与 root=UUID 上,凌晨也不容易背锅。🙂


落地步骤(最通用:Debian/Ubuntu/RHEL 系都适用)

强烈建议先做快照/备份,并确保你有带外控制台或救援模式入口,这是你的回滚底线。

1)识别当前启动链与目标盘

lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS findmnt / findmnt /boot blkid

解释:

  • lsblk:看清楚两块盘、分区、文件系统、挂载点,避免“看错盘格式化”的灾难。

  • findmnt /:确认当前根分区来自哪块盘。

  • findmnt /boot:确认 /boot 是否独立分区(UEFI 机器还要看 ESP)。

  • blkid:拿到目标新分区的 UUID,后续fstab / GRUB都靠它。


2)在新盘创建根分区并格式化(示例:/dev/sdb1)

# 示例:把 /dev/sdb 做 GPT 分区,并创建一个根分区 parted /dev/sdb --script mklabel gpt parted /dev/sdb --script mkpart primary ext4 1MiB 100% # 格式化(也可用 xfs:mkfs.xfs /dev/sdb1) mkfs.ext4 -L newroot /dev/sdb1

解释:

  • parted ... mklabel gpt:初始化分区表(现代系统优先 GPT)。

  • mkpart ... 1MiB 100%:从 1MiB 对齐开始建分区,减少对齐问题。

  • mkfs.ext4:创建新根文件系统;加-L只是标签,真正稳定识别靠UUID。


3)把现有根目录完整复制到新根(推荐 rsync,保留权限与属性)

mkdir -p /mnt/newroot mount /dev/sdb1 /mnt/newroot rsync -aAXH --numeric-ids --info=progress2 \ --exclude={"/dev/*","/proc/*","/sys/*","/run/*","/tmp/*","/mnt/*","/media/*","/lost+found"} \ / /mnt/newroot/

解释:

  • mount:把新根挂载到临时目录,作为复制目标。

  • rsync -aAXH

    • -a保留权限/时间/软链接;

    • -A -X保留 ACL 与扩展属性(很多安全策略、容器环境依赖它);

    • -H保留硬链接(某些系统文件会用到);

    • --numeric-ids避免因用户名映射差异导致 UID/GID 漂移。

  • --exclude:排除运行时伪文件系统与临时目录,否则复制出来会“像一锅粥”。


4)chroot 进新系统,改 fstab + 重建 initramfs + 更新 GRUB

# 绑定必要目录,保证 chroot 内能正常生成 initramfs/更新 grub mount --bind /dev /mnt/newroot/dev mount --bind /proc /mnt/newroot/proc mount --bind /sys /mnt/newroot/sys chroot /mnt/newroot /bin/bash

解释:

  • mount --bind:把真实的 /dev /proc /sys 映射进去,否则 chroot 里很多工具会失效(比如找不到磁盘设备)。

  • chroot:进入“新根盘视角”,后续修改都落在新系统里,避免改错当前正在跑的系统。

进入 chroot 后,执行(按发行版二选一):

A. Debian/Ubuntu 系:

# 1) 写入新 / 的挂载(把 / 改成新盘 UUID) blkid /dev/sdb1 nano /etc/fstab # 2) 重建 initramfs,确保能识别新盘控制器/RAID/LVM update-initramfs -u -k all # 3) 更新 grub 配置,并把 grub 安装到“BIOS 固定启动的那块盘”(通常是 /dev/sda) update-grub grub-install /dev/sda

解释:

  • nano /etc/fstab:把根分区这一行改成新盘 UUID,例如:UUID=xxxx / ext4 defaults 0 1。这里是切根的核心开关。

  • update-initramfs:把需要的模块打进启动镜像,否则会出现“找不到根分区”直接掉进救援壳。

  • grub-install /dev/sda:BIOS 固定从哪块盘引导,就把 GRUB 放哪块盘;不然你根切过去了,机器还是从旧链路启动,等于白干。

B. RHEL/CentOS/Rocky/Alma 系:

blkid /dev/sdb1 vi /etc/fstab dracut -f grub2-mkconfig -o /boot/grub2/grub.cfg grub2-install /dev/sda

解释:

  • dracut -f等价于重建 initramfs(RHEL 系主流)。

  • grub2-mkconfig重新生成 grub 菜单。

  • grub2-install同理,落到 BIOS 固定启动盘。

最后退出并卸载:

exit umount -l /mnt/newroot/dev /mnt/newroot/proc /mnt/newroot/sys umount -l /mnt/newroot reboot

解释:

  • umount -l:懒卸载,适合有进程占用时的安全收尾(比硬拔更文明)。

  • reboot:进入验证阶段。


验证你是否真的“切根成功”

重启后执行:

findmnt / lsblk -o NAME,FSTYPE,MOUNTPOINTS

解释:

  • findmnt /:看/的来源设备是否已变为新盘分区。

  • lsblk:再次确认挂载关系,形成变更闭环。


原理/风险对照表(务实版)

关键点你在控制什么正确做法常见坑
BIOS 不可改启动入口固定保留 DiskA 的 GRUB+/boot/ESP试图把引导也搬走,结果起不来
root=UUID根分区指向fstab 用 UUID 指向 DiskB用 /dev/sdb1,设备名可能漂移
initramfs启动时驱动/模块update-initramfs/dracut 重建新盘驱动没进镜像,掉救援模式
GRUB 安装位置机器从哪读引导grub-install 到 BIOS 固定启动盘装到新盘,BIOS 根本不读它
回滚风险兜底保留旧根分区不动改完顺手删旧盘,回不去

一句话结论

别纠结 BIOS,直接把“启动链”当作不可变基础设施,把“根盘”当作可迁移工作负载:DiskA 负责引导,DiskB 负责 /,用 UUID 锁定,initramfs 保证可识别。这套打法在机房托管、云厂商限制启动顺序、远程无人值守环境里,属于稳定可复制的企业级变更范式。🚀

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/8 19:33:40

NVIDIA TensorRT在智能制造中的潜在应用

NVIDIA TensorRT在智能制造中的潜在应用 在现代电子制造车间的一条高速SMT(表面贴装技术)生产线上,每分钟有超过4000块PCB板通过视觉检测工位。摄像头以60帧/秒的速度捕捉图像,AI系统需要在8毫秒内完成缺陷识别并触发剔除动作——…

作者头像 李华
网站建设 2026/7/8 19:32:18

TensorRT推理日志分析与故障排查指南

TensorRT推理日志分析与故障排查指南 在现代AI系统部署中,一个训练好的模型从实验室走向生产环境,往往面临“跑得动”和“跑得好”的巨大鸿沟。尤其是在视频监控、自动驾驶或实时推荐这类对延迟极其敏感的场景下,哪怕几毫秒的延迟波动都可能…

作者头像 李华
网站建设 2026/7/8 19:31:06

从训练到推理:TensorRT如何填补最后一公里?

从训练到推理:TensorRT如何填补最后一公里? 在AI模型越来越强大的今天,一个耐人寻味的现象却普遍存在:实验室里的模型准确率节节攀升,但在真实生产环境中部署时,却常常“跑不动”——响应慢、吞吐低、成本高…

作者头像 李华
网站建设 2026/7/6 23:21:24

视觉Transformer模型的TensorRT优化之路

视觉Transformer模型的TensorRT优化之路 在AI推理性能日益成为系统瓶颈的今天,视觉Transformer(ViT)这类前沿模型虽然在准确率上屡创新高,却常常因“跑得太慢”而被挡在生产环境门外。尤其是在智能安防、自动驾驶和工业质检等对延…

作者头像 李华
网站建设 2026/7/4 4:10:26

LLMs之MCP:用代码调用 MCP(MCP + Code Execution)—用执行环境让 AI 代理更高效(用代码执行解决 MCP 的上下文成本问题)—减少 token、提升隐私与可复用性的实战

LLMs之MCP:用代码调用 MCP(MCP Code Execution)—用执行环境让 AI 代理更高效(用代码执行解决 MCP 的上下文成本问题)—减少 token、提升隐私与可复用性的实战方案(用执行环境和技能库扩展 MCP 代理能力) 导读:Anthropic 介绍了把 MCP(Model…

作者头像 李华
网站建设 2026/7/8 20:46:31

利用TensorRT将BERT推理延迟降低70%

利用TensorRT将BERT推理延迟降低70% 在当今的AI服务系统中,一个原本需要50毫秒才能完成的BERT推理请求,可能直接决定用户是否会流失——尤其是在搜索、客服或语音交互这类对响应速度极为敏感的场景下。面对大模型带来的高延迟与低吞吐困境,我…

作者头像 李华