Sony VGN-NR260E "External Device Boot"

A Little Background

On all modern Dell computers pushing the F12 on BIOS during boot will allow for a screen that lets you choose what boot option you need. For example if I want to boot off of a USB flash drive to boot into a live Linux distribution in order to clean virus’s on netbooks that do not have CD drives to boot from I would push F12 and choose USB device from the list of options. If this does not show up then I can always go to the F2 bios setup and choose flash drive to be the first option. When I restart the computer it will boot into the flash device.

I understand that I can purchase an external USB CD drive and then boot from that. I do not want to use that option.

The reason for using a flash device instead of a CD is:

  1. This USB flash device has several different boot OS's on it that are used.
  2. The antivirus disks are updated often and burning cd's and throwing away others is wasteful compared to simply updating a flash drive.

There is nothing wrong with the flash drive. It works perfect on many other PCs.

Problem

Booting this flashdrive has been working for years on hundreds of computers but I just have this one computer that I cannot figure out how to get it to boot on. I have a Sony Vaio that will not boot to this device.

I’ve tried pushing every key combo I can think of (F12, ESC, DEL, F10…) and none of these key combinations will bring up the boot menu.

I chose F2 and went into the BIOS and changed the first boot device to USB flash device. This did not work either. There is an asterix next to the device and the note states:

This Drive is available when External Device Boot is Enable.

What I Need

  • I need to know how to enable “External Device Boot” on the Sony Vaio VGN-NR260E laptop.
  • Or I need to know how to bring up the boot menu to allow me to boot off a flash device.

Solution 1:

To enable External Device Boot, from Sony Support :

  1. Turn on or restart the computer and prepare to tap the "F2" key to enter the BIOS screen.
  2. When the VAIO logo appears, tap the "F2" key to enter the BIOS screen.
  3. Use the arrow keys to navigate to the "BOOT" section of the BIOS screen.
  4. Ensure the "External Device Boot" is set to "Enabled".
  5. Press the "F10" key to save changes and exit.

Solution 2:

Booting this flashdrive has been working for years on hundreds of computers but I just have this one computer that I cannot figure out how to get it to boot on. I have a Sony Vaio that will not boot to this device...

I had a similar problem with an ASUS laptop running Aptio UEFI (BIOS). If the UEFI does not detect the media as bootable, then you won't be able to select it as a boot option. As a matter of fact, I was not even able to enter the boot menu. In the old days, we would always be able to enter the boot menu, select the media and get an error message when attempting to boot.

To resolve the problem I experienced, I had to write a script to rebuild the ISO for the image I was trying to boot to using mkisofs. The Super User question is here, and the Fedora bug report is here.

The bug report includes the script, and its reproduced below. It requires a working Linux system with a few packages installed. Once you have the remastered ISO, just burn it to a DVD with something like Brasero. Or write it to your thumb drive (see, for example, How to create a bootable USB stick on Windows or How to create a bootable USB stick on Ubuntu).

I never did figure out why the UEFI/BIOS claimed the media was not bootable. I think the UEFI may have hard-coded a filename to a particular case. Or it may have been something with the ISO File System that the remastering fixed...


#!/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"