Gigabyte Brix BXBT-1900 Not Booting without Monitor on Ubuntu Minimal 16.04
I love my Gigabyte Brix BXBT-1900, I have been running it as a headless server since March 2016 and had no problems with it I originally put Ubuntu 14.04 LTS and got to going quite easily. When Ubuntu 16.04 LTS I did an in situ update to Ubuntu 16.04 for which my MySQL keep breaking when Ubuntu kept adding updates for it, I have posted on this before http://www.shaunfreeman.name/ubuntu-16-04-mysql-update-fails/.
I had noticed that a fresh install of Ubuntu 16.04 didn't break the MySQL update so it must of been something that didn't update well there.
In my foolish fancy I though 'Hey! Why not fresh install my Ubuntu server on my Brix BXBT-1900 to fix this'
So that's what I did, got my mini ISO version of Ubuntu 16.06.1 LTS and installed it a fresh on the BXBT-1900.
Now as I use the Brix as a headless server I had to connect it to a monitor to install Ubuntu, so I attached it to my TV via the HDMI port. Every thing went well got it installed and installed ssh-server so I could SSH into it. I then shutdown the Brix and moved it back to it's place, attached it back to the network and boots it up.
Then came my shock. I couldn't SSH in, looked in my router admin panel ... not there!
OK I moved it back to the TV and attached it back via the HDMI port and booted it up, watched it boot and everything looked OK, went to SSH in and Yea! I could. Tried it again without the TV attached and bosh! same old problem.
So after a couple of hours messing around with BIOS settings and different ethernet cables and looking at the logs with no joy, it came to me that it seems to be hanging because there is on monitor. So maybe it's not getting past grub or hanging just after waiting for a graphic display....
OK lets look into the grub config file then and this is what is looked like. Open the config file with:
sudo nano /etc/default/grub
This is what mine looked like
# If you change this file, run 'update-grub' afterwards to update # /boot/grub/grub.cfg. # For full documentation of the options in this file, see: # info -f grub -n 'Simple configuration' GRUB_DEFAULT=0 GRUB_HIDDEN_TIMEOUT=0 GRUB_HIDDEN_TIMEOUT_QUIET=true GRUB_TIMEOUT=10 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` GRUB_CMDLINE_LINUX_DEFAULT="splash quiet" GRUB_CMDLINE_LINUX="" # Uncomment to enable BadRAM filtering, modify to suit your needs # This works with Linux (no patch required) and with any kernel that obtains # the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...) #GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef" # Uncomment to disable graphical terminal (grub-pc only) #GRUB_TERMINAL=console # The resolution used on graphical terminal # note that you can use only modes which your graphic card supports via VBE # you can see them in real GRUB with the command `vbeinfo' #GRUB_GFXMODE=640x480 # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux #GRUB_DISABLE_LINUX_UUID=true # Uncomment to disable generation of recovery mode menu entries #GRUB_DISABLE_RECOVERY="true" # Uncomment to get a beep at grub start #GRUB_INIT_TUNE="480 440 1"
OK now that doesn't look right to me for just a headless server lines
GRUB_CMDLINE_LINUX_DEFAULT="splash quiet" GRUB_CMDLINE_LINUX=""
# Uncomment to disable graphical terminal (grub-pc only) #GRUB_TERMINAL=console
shouldn't read like that, we want Ubuntu to boot in text mode thank you very much! so lets change them. So to boot a headless server the lines should read
# Uncomment to disable graphical terminal (grub-pc only) GRUB_TERMINAL=console
Once these where changed we have to update grub with
I then shutdown the Brix and put it back in its little place, booted it up and Presto! I was able to SSH in!
Watch on YouTube : How To Boot Ubuntu In Text Mode
So if you are having boot problems with your headless server try looking at the grub config first it my save you several hours of head banging frustration..