有没有办法让 USB 闪存驱动器在重启时不被检测到,从而避免 PC 尝试使用它进行启动?假设您只能控制闪存驱动器,而不管理 PC。我知道您可以从 PC 禁用它,并且有办法让闪存驱动器启动操作系统。
我的问题是,我有一个装满有用东西的便携式应用程序驱动器,但是当我重新启动时,我必须拔下它并重新插入,否则当时我正在使用的任何电脑都会挂起。
软件解决方案是最好的,但如果有人知道 USB 设备仅在启动后一段时间才通电,那也会很有趣。
答案1
概括
启动 Linux(Live 或已安装)并运行连接到 USB 驱动器的文件sudo grub-install /dev/sdX
在哪里sdX
。要查找 USB 驱动器的位置,请使用sudo parted -l
或sudo fdisk -l
[1](我不确定这将如何与 UEFI 固件配合使用)
主要的
我的问题是,我有一个用于备份的便携式 USB 硬盘。我将 BIOS 设置为首先从 USB 启动,因为有时我必须从 USB 启动实时操作系统映像。当我重新启动系统时,系统会尝试启动便携式硬盘并挂起。
- 首先,我尝试清除分区的启动标志。启动标志不起作用,因为大多数现代启动加载程序都对此不感兴趣,而且它主要由旧版操作系统使用。[2]
- 其次,我尝试将 USB 驱动器的前 446 个字节清零,希望 BIOS 不会看到任何内容,然后直接转到下一个驱动器。[3]事实证明 BIOS 并不是这样工作的。据我所知,您(用户)在 BIOS 配置中设置了启动顺序。如果 BIOS 检测到您指示的介质,它将“连接”到该设备,将第一个扇区(512 字节)复制到 RAM 中并开始执行代码。如果该区域被清零,机器就会挂起。
- 最后,我尝试了摘要部分详述的方法。grub-install 能够找到我的所有操作系统,现在我不需要拔下 USB 即可启动。
[1]https://askubuntu.com/q/180023
[2]https://unix.stackexchange.com/a/23588/183350
[3] 第一个扇区(512 字节)是主引导记录 (MBR)。MBR 有两个部分:主分区表和主引导代码。主引导代码从字节 0 到 446,包含系统将用于引导指定分区的代码。字节 447-512 包含实际的分区表。如果分区表损坏或归零,系统可能无法读取分区。http://www.dewassoc.com/kbase/hard_drives/master_boot_record.htm
[4]https://unix.stackexchange.com/questions/259143/how-does-grub-stage1-exactly-access-load-stage-2
答案2
如果计算机尝试从该分区启动,即使它没有可启动分区,那么您就无法改变这一事实。
至于你的第二种可能性,即它只有在计算机已启动时才会通电,这是不可能的。USB 驱动器在机器需要时才会通电,实际上不是在其他任何时候。
抱歉,但看起来您将不得不在每次启动时将其取出(就像人们在某些硬件上使用软盘和 CD 一样)。
笔记:这假设您无权访问 BIOS(因为我从问题中推断出您只能控制闪存驱动器,而不是计算机)。
答案3
嗯,关于如何用另一种方式做到这一点,它有相当好的记录,但我想你需要做的就是关闭 USB 驱动器上的启动标志使用一些分区编辑器,例如 gparted。
与往常一样,在执行任何操作之前请先备份驱动器,因为存在丢失所有信息的轻微风险
答案4
如果出于某种原因 BIOS 设置不适合您,您可以考虑在 USB 驱动器上实际安装引导加载程序。