Main menu:

Sponsoring

Please consider a small donation:

 

 

Or you can donate bitcoin:

 

Thanks to TekLinks in Birmingham, AL, for providing colocation and bandwidth.

Page Rank

Fame

FOSS Force Best Blog--2013 Award

Recent posts

Recent comments

About this blog

I am Eric Hameleers, and this is where I think out loud.
More about me.

Search

My Favourites

Slackware

Calendar

October 2014
M T W T F S S
« Sep    
 12345
6789101112
13141516171819
20212223242526
2728293031  

RSS Alien's Slackware packages

RSS Alien's unofficial KDE Slackware packages

RSS Alien's multilib packages

Meta

Remote installation of Slackware using ssh

When you are installing Slackware, you have several options of using the network. Your packages can be on a NFS, HTTP, FTP or SaMBa server. But it still requires you do be physically present behind the keyboard of the computer you are installing Slackware on.

Or does it?

There is a way to make the installer launch an embedded SSH server automatically. Once that SSH server is running,  you can do a remote login to this machine and install Slackware.

I hear you say, “why would I want to install Slackware over a ssh session at all”? Well, this feature is particularly important for people who need to install Slackware on a headless server – think of a server in a data center. You still need to boot the Slackware installer of course, but you do not need a DVD for that. If you have a PXE server, you can boot the installer over the network and never have to visit your computer “in the flesh”.

If you are familiar with Slackware’s installation, you know that you have to answer a few questions before you can start with a network installation. At a minimum, you need to

  • configure your keyboard layout, and
  • the configuration of your network card.

For these to be configured automatically, you must provide the installer with the answers. If both answers are known, then the installer can configure your network card with an IP address and start the embedded SSH server (Slackware uses dropbear as the SSH server). You can then do a remote login as root (no password will be asked! Be sure that your network is secure before you attempt this).

After you have logged on to the dropbear SSH server (you must know what IP address your to-be-installed computer has been configured with of course) you can remotely start Slackware’s “setup” (but first you have to run the command “. /etc/profile” – watch the dot! – which initializes the environment so that the setup utilities become available).

Burning question: how do you tell the installer the answers to the above two questions?

I am assuming you are booting the installer from the network, using a PXE server. Now, let’s assume your keyboard layout is “us“, your network interface is called “eth0” and you have a DHCP server in your network. Then, you need to change the “pxelinux.cfg/default” file like this:  add the following string to the “append” line for your boot kernel:

kbd=us nic=auto:eth0:dhcp

If instead, you want to use a static IP address of “192.168.0.11/255.255.255.0” (i.e. a netmask of 24 bits) the appended string becomes:

kbd=us nic=auto:eth0:static:192.168.0.11:24

Slackware’s installer uses udev for automatic hardware initialization and configuration. If you don’t want to use udev but want to determine yourself what module to load then this would be the appended string (I also added a default gateway of “192.168.0.254” to the mix):

noudev kbd=us nic=e1000:eth0:static:192.168.0.11:24:192.168.0.254

The generic notation for the kbd= and nic= parameters is:

kbd=<keyboard_layout>
nic=<driver>:<interface>:<dhcp|static>[:ipaddr:netmask[:gateway]
]

If your installer uses udev (the installer of Slackware 13.0 and later uses udev by default, earlier versions of Slackware did not have udev in the installer) then the “<driver>” string can be “auto”. Without the use of udev, the “<driver>” must be an actual kernel module for your card, like “e1000” in my example above.

I’d like to hear if you ever used or wanted to use this somewhat hidden feature of the installer!

Eric

Note: If you do a “normal” Slackware installation and want to start the dropbear SSH server manually after configuring the network card, you can do this. Just run:

/etc/rc.d/rc.dropbear start


Comments

Pingback from Alien Pastures » Remote installation of Slackware using ssh | Just linux!
Posted: January 25, 2010 at 00:58

[...] View original here:  Alien Pastures » Remote installation of Slackware using ssh [...]

Comment from slava_dp
Posted: January 25, 2010 at 15:42

Thanks so much for this information. This is truly a hidden (deeply hidden!) gem of the slackware installer. I’ve asked in ##slackware a couple of times in the past but was told that i had to rebuild the installer with ssh support or never got a clear answer at all. now what you wrote is really beatiful and simple. So thank you :-)

Pingback from Tweets that mention Alien Pastures » Remote installation of Slackware using ssh — Topsy.com
Posted: January 27, 2010 at 18:13

[...] This post was mentioned on Twitter by Eric Hameleers, Underall. Underall said: RT @erichameleers: Remote installation of Slackware using ssh: When you are installing Slackware, you have several options of using t… http://bit.ly/6TYzTN [...]

Comment from delebru
Posted: February 12, 2010 at 14:26

This is great! I was thinking about doing this with a PC on a data center but is there some way to change remotely the BIOS boot sequence? Because it has network boot disabled…

Pingback from Install Slackware Remotely (and what FS is considered best for server?) – LinuxQuestions.org
Posted: April 6, 2010 at 04:29

[...] Perhaps this will get you started: http://alien.slackbook.org/blog/remo…are-using-ssh/ [...]

Comment from seb
Posted: July 3, 2011 at 16:35

Thanks for these great tips! I have had to install Slackware 13.37 on an headless machine, and they have been very useful.

The only little problem I encountered was the fact the machine was not accessible through PXE. So, I’ve had to hack the Slackware default installer in order to start automatically the SSH daemon.

To do that, I’ve put my script in a custom ramdisk archive I’ve then appended to the “initrd” one in isolinux.cfg. This way allows to not really hack the initrd, so it can be easily reproduced from install to install.

Sadly, the Slackware installer does not look for potential custom init scripts, so the only room to put it is in /etc/profile.d, which implies to make it unexecutable after its first execution (otherwise “. /etc/profile” break the SSH session). It would be cool to have a proper room to do that (rc.local or rc.custom, created according to the will of the user) :)

Comment from seb
Posted: July 3, 2011 at 16:39

Oops… sorry for the multi-post. The capchka reported me errors and I didn’t see my message has been properly posted…

Comment from Tim
Posted: April 30, 2012 at 23:22

http://www.linuxquestions.org/questions/slackware-installation-40/remote-installation-of-a-slackware-linux-453953/#post4667070

Thanks. Applied your post to the above process, installing now.

Cheers,

Pingback from Default apps on slackware, what do you think? – Page 5
Posted: May 1, 2012 at 22:54

[...] is a sshd inside the installer, it has been there for years. It's just not started by default. See http://alien.slackbook.org/blog/remo…are-using-ssh/ [...]

Pingback from Remote installation of a Slackware Linux
Posted: May 1, 2012 at 23:18

[...] I have never tried it in the flesh but have you given a look at this: http://alien.slackbook.org/blog/remo…are-using-ssh/ [...]

Pingback from What is best approach for a hands-free install?
Posted: July 3, 2012 at 19:18

[...] Slackware is an option for you, read this from AlienBOB aka Eric Hameleers. If it's not exactly what you want, you could adapt according to [...]

Comment from jjthomas
Posted: October 7, 2012 at 11:13

Although the computers are on top of each other, installing via the command line lets me copy and past from the README_CRYPT.TXT. Makes for an easier installation.

Comment from Abdullah ÜLKER
Posted: January 15, 2013 at 14:09

Slackware 13.0 pxe install Dokument.
Türkçe :)

http://www.slackware.org.tr/index.php?option=com_content&task=view&id=93&Itemid=10

Enjoy :)

Pingback from Remote installation request root password
Posted: December 22, 2013 at 00:56

[…] in to get rid of this advertisement]'); I'm trying to do the Remote Installation as provided here. I am able to make the ssh connection, login as root and I am prompted for a password. From […]

Write a comment