[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Is there a way to ssh into the debian installation process?



On 09/12/13 13:26, Rick Thomas wrote:
> 
> Is there some way to tell the debian installer to enable an ssh
> server during the installation?

Yes.

>  I'd like to be able to
> ssh/slogin/scp to the installation process so I can retrieve log
> files and otherwise snoop the process when the keyboard/mouse are
> frozen.
> 
> This is part of my pursuit of Bug#728936, which renders it impossible
> to do a normal Sid CD-based installation of my PowerPC Macs, because
> the USB keyboard and mouse are not recognized.
> 
> Thanks in advance!
> 
> Rick
<snipped>

I can't test on a PowerPC so I can only guess (wildly) about differences
between my experience and yours. I'm using debian-7.2.0-i386-netinst.iso
The following will automate the install to the point where you start
partitioning - by which time you can "ssh installer@$ipAddress"
(password is debian).

At the very least you'll have to change my ISOLINUX references to suit
the PowerPC boot loader, probably locale, possibly keymap, you may also
need to install additional modules and/or firmware.


This script will do the remaster - modify to suit your needs.

========== remaster.sh ======
#!/bin/bash
mkdir -p ~/install/cd
# 1. grab install cd
cd ~/install && wget
http://cdimage.debian.org/debian-cd/7.2.0/i386/iso-cd/debian-7.2.0-i386-netinst.iso
# apt-get install p7zip
# 2. extract it with 7zip to a directory
7z x -ocd ~/install/debian-7.2.0-i386-netinst.iso
mkdir ~/install/new_initrd
# 3. extract the initrd to another directory and put preseed.cfg there
(also add firmware if required)
cd ~/install/new_initrd && zcat ~/install/cd/install.386/initrd.gz |
cpio -iv
cd ~/install/new_initrd && cp $pathToYour/preseed.cfg ./
read -p "Press [Enter] key when initrd changes are complete"
# modify initrd to suit
# 4. recreate initrd
cd ~/install/new_initrd && find . -print0 | cpio -0 -H newc -ov | gzip
-c > ~/install/cd/install.386/initrd.gz
# 5. customize isolinux.cfg
cp $pathToYour/isolinux.cfg ~/install/cd/isolinux
# 6. generate md5sums
cd ~/install/cd; md5sum `find ! -name "md5sum.txt" ! -path
"./isolinux/*" -follow -type f` > md5sum.txt;cd -
# 7. create iso
genisoimage -o
~/install/debian-7.2.0-i386-custom-$yourVersionLabel-netinst.iso -r -J
-no-emul-boot -boot-load-size 4 -boot-info-table -b
isolinux/isolinux.bin -c isolinux/boot.cat ~/install/cd
===========


This should be the minimum you require for the boot, modify to suit your
needs, DEBCONF_DEBUG is not necessary, just makes it easier to see what
DEBCONF is doing during the install (look at Alt+F4 or /var/log/syslog):-


=========== isolinux.cfg =========
# autostart SSH install
prompt 0
timeout 1
default preseed

label preseed
  kernel /install.386/vmlinuz
  append vga=788 initrd=/install.386/initrd.gz auto DEBCONF_DEBUG=5
==================================


You will want to changes values in the preseed (some are redundant, some
won't suit your needs):-


=========== preseed.cfg ==========
#### IMPORTANT NOTE - replace "strongpassword" with an actual strong
password.
## autostart SSH install
d-i debian-installer/country string AU
d-i debian-installer/locale string en_AU.UTF-8
d-i debian-installer/language string en_AU:en
### Network configuration
# d-i netcfg/disable_dhcp boolean true
# d-i netcfg/dhcp_options select Configure network manually
# d-i netcfg/confirm_static boolean true
d-i netcfg/disable_autoconfig boolean true
# see http://lists.debian.org/debian-boot/2012/10/msg00054.html
d-i netcfg/target_network_config select ifupdown
d-i netcfg/choose_interface select eth0
d-i netcfg/get_hostname string preseed
d-i netcfg/get_domain string dev
# Static networ kconfiguration.
d-i netcfg/get_nameservers string 8.8.8.8
d-i netcfg/get_ipaddress string 192.168.0.56
d-i netcfg/get_netmask string 255.255.255.0
d-i netcfg/get_gateway string 192.168.0.6

### Console and SSH
d-i anna/choose_modules string network-console openssh-client-udeb
d-i debian-installer/consoledisplay string console-setup
network-console network-console/start note
d-i network-console/password password debian
d-i network-console/password-again password debian
d-i preseed/early_command string anna-install network-console
openssh-client-udeb
### Mirror settings
d-i mirror/country string enter information manually
d-i mirror/http/hostname string http.us.debian.org
d-i mirror/http/directory string /debian
d-i mirror/http/proxy string http://192.168.0.2:3142

### apt
d-i apt-setup/local0/source boolean false
d-i pkgsel/include string mc deborphan openssh-server openssh-client
openssh-blacklist openssh-blacklist-extra screen localepurge bzip2 unzip
zip rar unrar debconf-utils
d-i pkgsel/upgrade select none
d-i pkgsel/update-policy select none
apt-setup-udeb apt-setup/security_host	string security.debian.org
popularity-contest popularity-contest/participate boolean true
d-i hw-detect/select_modules multiselect usb-storage (USB storage)
apt-mirror-setup apt-setup/contrib boolean true
apt-mirror-setup apt-setup/non-free boolean true
### Partitioning

### Clock and time zone setup
d-i clock-setup/utc boolean true
d-i time/zone string Australia/Canberra

### Installation setup
d-i prebaseconfig/reboot_in_progress note
d-i debian-installer/shell-plugin terminal
base-config base-config/intro note
base-config base-config/login note
bootstrap-base base-installer/initramfs-tools/driver-policy select targeted
d-i keyboard-configuration/modelcode string pc105
# d-i keyboard-configuration/model select	Generic 105-key (Intl) PC
d-i keyboard-configuration/layoutcode string us
d-i keyboard-configuration/xkb-keymap string us
d-i cdrom-detect/load_media boolean true

### Users
# root
d-i passwd/root-login boolean true
user-setup-udeb passwd/root-login boolean true
d-i passwd/root-password password strongpassword
d-i passwd/root-password-again password strongpassword
# d-i passwd/root-password-crypted password []
# $ printf "password" | mkpasswd -s -m md5
# Enable shadow passwords.
user-setup-udeb passwd/shadow boolean true
# The user's name and login.
d-i passwd/make-user boolean true
user-setup-udeb passwd/make-user boolean true
passwd passwd/user-fullname string Scott Ferguson
passwd passwd/username string scott
d-i passwd/user-password password strongpassword
d-i passwd/user-password-again password strongpassword
#d-i passwd/user-password-crypted password []
# user-setup-udeb user-setup/password-weak boolean false
# And other user properties
d-i passwd/user-default-groups string scott lp dialout cdrom audio dip
video plugdev users mlocate powerdev netdev fuse sambashare lpadmin scanner
d-i user-setup/encrypt-home boolean false
user-setup-udeb user-setup/encrypt-home boolean false
# install desktop + standard packages
# bootstrap-base base-installer/kernel/image select linux-image-686-pae
bootstrap-base base-installer/kernel/image select linux-image-686-pae
linux-image-3.2.0-4-686-pae
discover discover/install_hw_packages multiselect
virtualbox-ose-guest-x11 wbritish curl
tasksel tasksel/first multiselect standard

### Finish the installation
# Avoid that last message about the install being complete.
d-i finish-install/reboot_in_progress note
===========================================



Let me know how you go.

Kind regards


Reply to: