Sony VAIOs are pretty notorious for having flaky firmware. I recommend you first check Sony's site for an update and, if one is available, install it.
If that doesn't help, start investigating your firmware boot order options using efibootmgr
in Ubuntu. You'll see something roughly like this:
$ sudo efibootmgr
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000,0003,0007,2003,0001,2001,2002
Boot0000* rEFInd (direct)
Boot0001* Lenovo Recovery System
Boot0003* ubuntu
Boot0007* Windows Boot Manager
Boot2001* EFI USB Device
Boot2002* EFI DVD/CDROM
Boot2003* EFI Network
The details will differ, of course. Look at the BootCurrent
and BootOrder
lines; the numbers refer to the various Boot####
entries. In this example, the BootOrder
is set to rEFInd (direct)
first, followed by ubuntu
, and so on; and the system actually booted (BootCurrent
) via rEFInd. Note that the numbers are actually hexadecimal, although this example doesn't show any over-9 digits.
Compare the output of this command when you reboot from Windows vs. when you reboot from Ubuntu. Does the BootOrder
change depending on how you boot? Also, does rebooting from Windows automatically change the BootOrder
back (and fix the boot-time behavior)?
If the BootOrder
is changing, you might try setting it back to the way it should be in Ubuntu. Use the -o
option to efibootmgr
, as in:
sudo efibootmgr -o 0,3,7
Change the numbers to match your Boot####
options, of course. If this works on a one-time basis, you can create a shutdown script to do it automatically every time you shut down, as described here:
Execute a script upon logout/reboot/shutdown in Ubuntu
If that doesn't help, then there are possible solutions that involve renaming and moving boot loader files. Boot Repair can do this semi-automatically via an option on its Advanced menu (I don't recall the exact name, though; it's something to do with backing up and renaming files). I'd use this option only as a last resort, though; it's an ugly hack that doesn't always work and that can create confusion down the road if/when you need to re-install an OS or otherwise manipulate the boot loaders.
I do not recommend re-installing Ubuntu as a solution. It didn't work the first time and it's unlikely to do any better the second time. The presence or absence of a /boot
partition is almost certainly irrelevant to your problem.
Best Answer
Sony, HP, and many laptop vendors are hard-coded to only boot Windows.
There are several work-a-rounds that suggest you move the grub
grubx64.efi
orshimx64.efi
file on top of the Windows/EFI/windows/bootmgfw.efi
. However this isn't recommended because Windows Update will restorebootmgfw.efi
and you'll be back to only Booting windows.Instead, I suggest renaming the fallback /EFI/Boot/bootx64.efi and boot hard drive entry or use rEFInd.
Make sure you backup the entire EFI partition before making changes.
You have several options available:
I. Move and rename the grub files
grubx64.efi
orshim64.efi
(for secure boot) to this folder/file/EFI/BOOT/BOOTX64.EFI
Rename /efi/boot/bootx64.efi, copy shim or grub into /efi/boot and name it bootx64.efi Then boot hard drive entry. New versions of Boot-Repair automatically do this with 'Use the standard EFI file' in advanced options. It also backs up current bootx64.efi which is probably just a copy of Windows .efi boot file.
From live installer mount the efi partition on hard drive: Mount efi partition. check which partition is FAT32 with boot flag. Often sda1 or sda2 but varies.
only if not already existing,
If new folder created, the bootx64.efi will not exist, skip this command
Make grub be hard drive boot entry in UEFI. If not existing, may have to update UEFI also with efibootmgr.
If need be, add a new UEFI hard drive boot entry: See also
If ESP is sda or default drive & partition entries:
If ESP is not sda1, sdX is drive, Y is efi partition, also NVMe drives :
(This is the same as what Boot-Repair used to do in II. Not now recommended: Rename /efi/Microsoft/Boot/bootmgfw.efi and copy grub or shim into /efi/Microsoft/Boot and name it bootmgfw.efi Then boot Windows entry to boot to grub menu. You have to manually add a grub menu entry to boot renamed Windows efi file. Grub2's os-prober entry boots bootmgfw.efi entry which is now just grub, so it will not work.
Users who manually moved efi files around see post #6.
http://ubuntuforums.org/showthread.php?t=2101840
http://ubuntuforums.org/showthread.php?t=2219452
http://ubuntuforums.org/showthread.php?t=2221498&p=13012109#post13012109
II. If you ran Boot-Repair's fix for "buggy UEFI" with an older copy it's best to undo it. And then make the change above to use bootx64.efi To undo and to rename files to their original names, you just need to tick the "Restore EFI backups" option of Boot-Repair.
Any rename either manually or with Boot-Repair will need to be redone after a Windows update as it will restore Windows files.
III. Edit Windows BCD, one alternative to Boot-Repair's rename to make shim have Windows name. Some systems work better to register grub/shim from inside Windows - for those that keep resetting Windows as default.
Grub not showing on startup for Windows 8.1 Ubuntu 13.10 Dual boot
https://coderwall.com/p/vfyqkg
IV. If Description has to be Windows, then change UEFI description. This really only works for those with just Ubuntu, and no Windows install at all.
Restore or a new Windows UEFI entry - assumes default sda1 add -p 2 if sda2 (see man efibootmgr -d drive & -p partition options):
V. Some install rEFInd which seems to be another workaround and has nice boot icons.
http://www.rodsbooks.com/refind/index.html
http://www.rodsbooks.com/refind/secureboot.html
PPA available to make it easy to install in Ubuntu
http://www.rodsbooks.com/refind/getting.html
VI. Restore Ubuntu UEFI entry sdX is drive, Y is efi partition , if sda2 for example
VII. Change boot order with efibootmgr:
Change boot order using efibootmgr
VIII. Uninstall UEFI entry:
Uninstall Grub and use Windows bootloader Change boot order using efibootmgr