一点背景
在所有现代戴尔电脑上,F12在启动过程中按下 BIOS 都会出现一个屏幕,让您选择所需的启动选项。例如,如果我想从 USB 闪存驱动器启动以启动实时 Linux 发行版,以便清除没有 CD 驱动器可启动的上网本上的病毒,我会按下F12并从选项列表中选择 USB 设备。如果没有显示,那么我可以随时转到 BIOSF2设置并选择闪存驱动器作为第一个选项。当我重新启动计算机时,它将启动到闪存设备。
我知道我可以购买外部 USB CD 驱动器,然后从该驱动器启动。但我不想使用此选项。
使用闪存设备而不是CD的原因是:
- 该 USB 闪存设备上装有几种不同的启动操作系统供使用。
- 防病毒磁盘经常更新,与简单地更新闪存驱动器相比,刻录 CD 并扔掉其他 CD 是一种浪费。
闪存驱动器没有任何问题。它在许多其他电脑上运行良好。
问题
启动这个闪存驱动器已经在数百台计算机上工作多年,但我只有这个一我无法弄清楚如何启动它。我有一台 Sony Vaio,无法启动此设备。
我尝试按下我能想到的所有组合键(F12、、、…… ),ESC但这些组合键都无法调出启动菜单。DELF10
我选择F2并进入 BIOS,将第一个启动设备更改为 USB 闪存设备。这也不起作用。设备旁边有一个星号,注释为:
当外部设备启动启用时,此驱动器可用。
我需要的
- 我需要知道如何启用“外部设备启动”索尼 Vaio VGN-NR260E笔记本电脑。
- 或者我需要知道如何调出启动菜单以便我从闪存设备启动。
答案1
要启用外部设备启动,请从索尼支持:
- 打开或重新启动计算机并准备按“F2”键进入BIOS屏幕。
- 当出现 VAIO 标志时,点击“F2”键进入 BIOS 屏幕。
- 使用箭头键导航到 BIOS 屏幕的“BOOT”部分。
- 确保“外部设备启动”设置为“已启用”。
- 按“F10”键保存更改并退出。
答案2
多年来,该闪存驱动器在数百台计算机上都能够正常启动,但我只有这台计算机无法启动它。我有一台 Sony Vaio,无法启动该设备...
我在使用 Aptio UEFI(BIOS)的华硕笔记本电脑时也遇到了类似的问题。如果 UEFI 未检测到媒体可启动,则您将无法将其选为启动选项。事实上,我甚至无法进入启动菜单。在过去,我们总是能够进入启动菜单,选择媒体并在尝试启动时收到错误消息。
为了解决我遇到的问题,我必须编写一个脚本来重建我尝试使用的引导映像的 ISO mkisofs
。超级用户问题在这里和 Fedora错误报告在这里。
错误报告包含脚本,下面是它的复现。它需要一个可以运行的 Linux 系统,并且安装了几个软件包。一旦你有了重新制作的 ISO,只需用 Brasero 之类的软件将其刻录到 DVD 上。或者将它写入你的拇指驱动器(例如,参见如何在 Windows 上创建可启动的 USB 驱动器或者如何在 Ubuntu 上创建可启动的 USB 盘)。
我始终不明白为什么 UEFI/BIOS 声称媒体不可启动。我认为 UEFI 可能已将文件名硬编码为特定情况。或者可能是 ISO 文件系统出了问题,而重制版已修复此问题...
#!/bin/bash
# Fix no UEFI boot on Ubuntu and Fedora when on ASUS Q500A laptops with
# Aptio UEFI version 208. This may be useful for more EFIs.
#
# Be sure to have packages 'isoinfo', 'mkisofs' and 'genisoimage' installed.
#
# Refer to the following for building a bootable UEFI DVD:
# http://fedoraproject.org/wiki/User:Pjones/BootableCDsForBIOSAndUEFI
#
# Place this script and the ISO to fix in the same directory. Adjust
# the filenames as necessary. Then run `sudo ./fix-uefi-iso.sh`.
UBUNTU=1
FEDORA=0
# Typical Ubuntu
if [ "$UBUNTU" = "1" ]; then
SOURCE_ISO=`pwd`/ubuntu-13.10-desktop-amd64.iso
DESTINATION_ISO=`pwd`/ubuntu-13.10-desktop-remastered-amd64.iso
MOUNT_POINT=ubuntu-13-10
fi
# Typical Fedora
if [ "$FEDORA" = "1" ]; then
SOURCE_ISO=`pwd`/Fedora-Live-Desktop-x86_64-19-1.iso
DESTINATION_ISO=`pwd`/Fedora-Live-Desktop-remastered-x86_64-19-1.iso
MOUNT_POINT=fedora-19-1
fi
MOUNT_DIR=/media/"$MOUNT_POINT"
TEMP_DIR=`mktemp -d -t ISO-XXXXXXXX`
echo "Source ISO: $SOURCE_ISO"
echo "Destination ISO: $DESTINATION_ISO"
echo "Mount directory: $MOUNT_DIR"
echo "Temp directory: $TEMP_DIR"
if [ -e "$DESTINATION_ISO" ]; then
rm "$DESTINATION_ISO"
fi
if [ ! -d "$MOUNT_DIR" ]; then
mkdir "$MOUNT_DIR"
fi
echo "Mounting $SOURCE_ISO"
mount -o loop -t iso9660 "$SOURCE_ISO" "$MOUNT_DIR"
echo "Copying $MOUNT_DIR to $TEMP_DIR for writing"
cp -a "$MOUNT_DIR" "$TEMP_DIR"
CURR_DIR=`pwd`
cd "$TEMP_DIR/$MOUNT_POINT"
echo "Renaming BOOTx64.efi"
if [ -e "EFI/BOOT/BOOTx64.efi" ]; then
mv "EFI/BOOT/BOOTx64.efi" "EFI/BOOT/bootx64.efi"
echo " BOOTx64.efi -> bootx64.efi"
fi
if [ -e "EFI/BOOT/BOOTx64.EFI" ]; then
mv "EFI/BOOT/BOOTx64.EFI" "EFI/BOOT/bootx64.efi"
echo " BOOTx64.EFI -> bootx64.efi"
fi
if [ -e "EFI/BOOT/BOOTX64.efi" ]; then
mv "EFI/BOOT/BOOTX64.efi" "EFI/BOOT/bootx64.efi"
echo " BOOTX64.efi -> bootx64.efi"
fi
if [ -e "EFI/BOOT/BOOTX64.EFI" ]; then
mv "EFI/BOOT/BOOTX64.EFI" "EFI/BOOT/bootx64.efi"
echo " BOOTX64.EFI -> bootx64.efi"
fi
VOLUME_LINE=`isoinfo -d -i "$SOURCE_ISO" | grep -i "Volume id:"`
VOLUME_NAME=${VOLUME_LINE:11}
echo "Volume name: $VOLUME_NAME"
# Typical Ubuntu
if [ "$UBUNTU" = "1" ]; then
BIN_FILE=`find . -iname isolinux.bin`
BIN_NAME=${BIN_FILE:2}
CAT_FILE=`find . -iname boot.cat`
CAT_NAME=${CAT_FILE:2}
IMG_FILE=`find . -iname efi.img`
IMG_NAME=${IMG_FILE:2}
fi
# Typical Fedora
if [ "$FEDORA" = "1" ]; then
BIN_FILE=`find . -iname isolinux.bin`
BIN_NAME=${BIN_FILE:2}
CAT_FILE=`find . -iname boot.cat`
CAT_NAME=${CAT_FILE:2}
IMG_FILE=`find . -iname efiboot.img`
IMG_NAME=${IMG_FILE:2}
fi
# echo "BIN_NAME: $BIN_NAME"
# echo "CAT_NAME: $CAT_NAME"
# echo "IMG_NAME: $IMG_NAME"
if [ -z "$BIN_NAME" ]; then
echo "Error: could not find isolinux.bin."
fi
if [ -z "$CAT_NAME" ]; then
echo "Error: could not find boot.cat."
fi
if [ -z "$IMG_NAME" ]; then
echo "Error: could not find efi.img or efiboot.img."
fi
cd "$TEMP_DIR/$MOUNT_POINT"
mkisofs -U -A "$VOLUME_NAME" -V "$VOLUME_NAME" -volset "$VOLUME_NAME" \
-input-charset utf-8 -J -joliet-long -r -v -T -x ./lost+found \
-o "$DESTINATION_ISO" -b "$BIN_NAME" -c "$CAT_NAME" -no-emul-boot \
-boot-load-size 4 -boot-info-table -eltorito-alt-boot \
-e "$IMG_NAME" -no-emul-boot .
chmod a+rw "$DESTINATION_ISO"
read -p "Press [Enter] key to delete TEMP_DIR and unmount MOUNT_DIR..."
rm -rf "$TEMP_DIR"
umount "$MOUNT_DIR"
cd "$CURR_DIR"