前情提要:
当目标电脑上的硬盘的分区表存在错误的时候,灌进 U 盘中的 WINPE 就大概率无法在该电脑上启动
此时解决办法有:
1.启动 DOS,修复分区表错误后再从 WINPE 启动---但是 UEFI ONLY 的设备又怎么办呢?
2.启动 LINUX LIVE,使用 GPARTED 之类的程序修复分区表错误---这样可以接受,但是未免杀鸡用牛刀
3.拆硬盘,挂载到正常运行地系统中修复分区表错误---先有鸡还是先有蛋?
总之就是,此时已经不能指望 WINPE 了,你得想其它办法先修复分区表才能启动 WINPE
联想到已经存在[EFI SYSTEM CLONER]和[联想一键还原 UEFI 版]这种 EFI APP,单文件,可以直接被电脑固件执行,也可以被 GRUB2 链式加载,所以问问大家有没有类似地磁盘 /分区管理方面的 EFI APP?
找到一款 GDISK.EFI,但是似乎作者已经弃坑了,而且不能读写 FS
最终还是选择了system_rescue_cd来作为备用,特点如下:
1.这是一款由ARCH_LINUX所衍生地LIVE,专门设计用于系统急救场景,听名字就知道
2.原生支持persistence,也就是持久化,即对系统的所有更改都能跨重启保存,完全可以日常使用
3.由GRUB2向kernel传递持久化模式所需地[label]和[dir]这俩参数,理论上来说只要你U盘空间足够大,可以有无数个持久化模式的存储空间
4.支持boot from ram模式,也就是把整个rootfs所在地XXX.squashfs复制到RAM,再启动系统,然后可以拔掉启动U盘
5.目前我还在探索2和4能不能同时实现,理论上应该没有问题,要hook一下initramfs中地init脚本
结帖了,虽然没有找到合适地XXX.efi,但是找到了相当趁手地牛刀,哈哈哈
(其实几年前地KALI_LINUX其持久化模式我很满意,但是越更新越扑街,现在地版本我居然虚拟机里都跑不稳,已经很久没有玩LIVE的热情了)
1
timpaik 2022-09-29 20:53:48 +08:00 via Android
"目标电脑上的硬盘的分区表存在错误的时候,灌进 U 盘中的 WINPE 就大概率无法在该电脑上启动"
??? u 盘中的 winpe 和目标电脑的硬盘分区表有什么关系吗?? 就是目标电脑没有硬盘,winpe 也应该能正常启动才是。 |
2
shansing 2022-09-29 21:01:48 +08:00 via iPhone
同蹲一个解决方案。我也遇到过 WinPE 检测到分区表错误就拒绝启动的情况。
|
3
sky96111 2022-09-29 21:02:40 +08:00 via Android 3
PE 是运行在内存上的系统,别说分区表故障,硬盘完全烂了都能启动
|
4
vmebeh 2022-09-29 21:03:40 +08:00 via iPhone
diskgenius 可以生成 pe 版,把那个版本的启动项写到 bcd 里面,
或者用 windows 启动盘启动,安装界面按 Shift+F10 打开命令提示符,可以直接运行 diskgenius ,可能会提示确实 oledlg.dll ,从正常系统拷一个放在 dg 目录即可解决 |
5
ysc3839 2022-09-29 21:07:45 +08:00 via Android
|
6
7RTDKSAK OP @timpaik
这似乎是微软的设计问题,也就是说是 feature 而不是 bug 1.如果想要 WINPE 在引导期间不读写目标电脑上的硬盘(因为写硬盘对于数据抢救就是大风险),需要额外魔改 2.如果想要 WINPE 忽略目标电脑上的硬盘的分区表错误而不是拒绝启动,需要额外魔改 我也不知道为何要这样设计 |
7
7RTDKSAK OP |
8
qbqbqbqb 2022-09-29 21:47:09 +08:00 2
|
9
qbqbqbqb 2022-09-29 21:52:21 +08:00 1
有个 GParted Live ,就是一个专门打包了 GParted 的小型 Linux live 系统,不到 500M.
|
10
timpaik 2022-09-29 22:02:33 +08:00 via Android
@qbqbqbqb 那要不然试试拔掉硬盘再启动,再装上故障盘?那不就能正常启动了么,只要一台电脑,一个普通 winpe
|
11
kokutou 2022-09-29 22:02:56 +08:00 via Android 1
grub4dos efi 版本,关掉安全启动就可以用。
但是操作分区表的 efi 就不知道了。 efi 版本的 g4d 可以启动哪些东西没仔细试过。只是试过可以兼容传统 g4d 的菜单,可以启动 efi 版本的 memtest86 |
12
7RTDKSAK OP |
13
autoxbc 2022-09-29 23:44:09 +08:00
这看起来就是 PE 的 bug ,读不了可以不读,卡死怎么都说不通
|
14
Osk 2022-09-29 23:50:55 +08:00
硬盘导致 PE 无法启动是正常现象.
硬盘有问题导致 pe 卡死... 甚至还有 ntfs.sys 蓝屏... 用 linux 救火是常见操作. 一般遇到这类问题时, 我会选择启动个 ubuntu server 的 ISO. 选择 ubuntu 的原因:不用关安全启动. 不选择 ubuntu 桌面版的原因, 这糟心玩意儿自动挂载硬盘卷. 反正 ubuntu 和 win pe 能共存, 不就是 2GB 的空间占用吗, 占的起. |
15
Osk 2022-09-29 23:56:28 +08:00 1
如果你非要纠结需要一个 .efi 文件启动, 也许可以这样:
自己编译一个 kernel, 砍掉不需要的驱动, 减小体积. 使用 busybox 制作一个最小 /. 静态编译需要的工具: ntfs-3g, exfatprog, dosfstools, fdisk, gptfdisk, smartmontool 等. 将 busybox 的 / 和工具打包成一个 initramfs. 使用 systemd-boot 将 kernel 和 initramfs 打包成一个 efi 文件. 客官您要的 "分区助手.efi" 做好了 |
16
ysc3839 2022-09-29 23:59:31 +08:00 via Android 1
@Osk 都不需要自己编译,用 OpenWrt 的 ImageBuilder 打包就好了。alpine 不知道有没有类似工具。不嫌体积大的话弄个 Arch ISO 。
|
19
knives 2022-09-30 08:40:31 +08:00
自从开始用 ventoy 后,就再也没灌过 U 盘了,直接通过 ventoy 引导 PE/Linuex 的 ISO 了事。
|
20
gearfox 2022-09-30 10:14:43 +08:00
ventoy 确实是个好软件
|
21
tuwulin365 2022-10-01 18:49:12 +08:00 1
|
22
7RTDKSAK OP @tuwulin365 我试试,谢谢!
|