43

This is tricky. I would like to install Ubuntu on a machine that is intended to work as server, and for some reason I do not have an option to connect a screen to it.

I expect this may be similar to remote installation. However, there is currently no OS on that machine, so I will have to set up everything from scratch.

On the other hand, I do have a physical access to that machine. Therefore I can get it to boot from a CD/USB. But that's not enough.

Is there a way to do such installation remotely? Is there a version of Ubuntu image that comes with a SSH server preinstalled, and starts it once booted, so that I can boot the machine with such image, connect to it via SSH and process the installation from a different computer?

If not, what other options do I have?

5
  • 8
    You could pull out the hdd, use another machine to install and configure everything the way you like, and then move the hdd back. It's not too hightech, but is simple enough. Feb 3, 2013 at 12:56
  • 4
    @mikewhatever That's a useful tip, but that technique caused me lots of configuration troubles. Ubuntu learns about the hardware during installation, and when it's moved to another machine it has severe troubles even with finding the networking device, which makes me unable to access it remotely. Feb 3, 2013 at 14:17
  • If you can get it to boot to a USB drive or the network without using a monitor, then you can try this: askubuntu.com/a/260469/158442. Note that, with preseeding, you can also specify an SSH key and then perform the remainder of the installation over SSH.
    – muru
    Jul 15, 2014 at 1:36
  • 3
    Does it have a serial port? For old computers and headless mainframes we'd just console in. Not 100% if that's still an option though
    – meccooll
    Jul 15, 2014 at 2:02
  • Once display of my laptop broke down, I managed to connect it through localhost via Windows XP machine but I had Ubuntu intalled it. askubuntu.com/questions/377445/…
    – kenn
    Jul 15, 2014 at 11:32

5 Answers 5

22

The method mentioned in the comment above with installing Ubuntu on a different computer to just move the hard drive to the headless machine certainly is an elegant and probably the fastest method to get Ubuntu installed. In most cases hardware will be recognized and drivers will be provided on boot (not on installation). This makes installation of drivers unnecessary unless we do need proprietary drivers (e.g. for some very special network cards).

But there is another way we can install Ubuntu unattended by creating a custom CD-ROM, USB or from a network solution (Preseed). See this rather complete guide on the steps and tuning procedures involved:

You may also find the following related questions helpful:

1
17

Another option, using Serial console:

  1. Add serial 0 9600 0×003 to isolinux.cfg for CD or syslinx.cfg for USB
  2. Add console=ttyS0,9600n8 to kernel append parameters in text.cfg that contains menus.
  3. Connect it to another PC, with serial port (or with USB/Serial adapter), use Putty or Minicom with same settings 9600n8, then boot
  4. Follow installation through serial console.
  5. If want to make it permanently boot to serial console, follow instructions here:

    https://help.ubuntu.com/community/SerialConsoleHowto

Reference: Ubuntu Server 10.10 headless installation via serial console

0
10

You could use a No Question Asked preseeded debian-installer which installs just the base server and ssh package. On reboot you will be able to ssh into the running system and further install and configure from there.

There is an example of a preseed file here: https://help.ubuntu.com/community/Cobbler/Preseed

You can follow the normal iso to usb instructions https://help.ubuntu.com/community/Installation/FromUSBStick and then edit the syslinux/txt.cfg file on the usb boot stick to point to your preseed file and copy your preseed file to the preseed directory on the usb boot stick:

label custom
  menu label ^Install Custom Ubuntu Server
  kernel /install/vmlinuz
  append  file=/cdrom/preseed/ubuntu-custom.seed initrd=/install/initrd.gz quiet ks=cdrom:/isolinux/ks-custom.cfg --

Notice the second to last line in the preseed file installs openssh server package:

d-i     pkgsel/include string byobu vim openssh-server

Check the logs on your DHCP server to get the IP address of the newly booted system and ssh to it as the ubuntu user. The password in the example preseed is also 'ubuntu' (without quotes).

0
3

I write a simple solution based on preseed.

https://github.com/mhf-ir/ubuntu-overssh-reinstallation

You need installed version of ubuntu that have ssh. another http server for serving preseed file. I tested so many times in many datacenters.

1
  • 1
    Thank you for you time, love home made solutions, sometimes, code is more intuitive than explainations. Jun 2, 2018 at 2:51
0

Just to update, Ubuntu supports auto-installation (since 20.04). They have a Quick Start guide, to make it nice and easy for you. Essentially you provide all of the info you need when making the USB, then plug it in and boot (very oversimplified)

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .