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

A way from the ethernet onto the usb disk

Installation of Debian "Sarge" via network onto usb mass storage device.
Case study :-)

I've just acquired OpenBrick-NG[1]. This box came with ethernet interface
and scsi-usb disk (LaCie mobile). There is no floppy, no cd-rom, no
internal ide or scsi disk, nothing.

There are two possibilitis to install Debian onto it.

1. connect the usb drive to another workstation and fill it with image of
   fresh install of debian.
2. network installation.

I've chosen the second option, because it promised more fun.
After short google session I came across


This is excelent document. I've installed dhcp3-server, atftpd (which
edited inetd.conf for me), syslinux and preparet /tftpboot directory
according to instruction in that wiki. After correcting simple errors
like unplugged ethernet cables, stupid typos and pxe boot agent disabled
in BIOS, the installer booted.

First obstacle (minor):
Openbrick's video chipset is incompatible with frame-buffer
console. The screen becomes garbled. Simple to correct with this line:

  append vga=normal initrd=dinetboot.gz ramdisk_size=16384 root=/dev/rd/0 \
         init=/linuxrc devfs=mount,dall rw \
         debian-installer/framebuffer=false console=tty0

in pxelinux.cfg/default.

Second obstacle:
Netboot image does not support usb mass storage devices.
So I had to build my own. In order to do this I've installed
debian-installer-20040430 package and started reading doc/custom-kernel.txt.
That's another excelent document. I learned that kernel-image-2.4.26-1-386
has all bells and whistles needed, and proceeded with udeb generation.
It went smoothly.

I fiddled in a dirty way with pkg-lists/netboot/i386.cfg
adding "full support for all types of hard-drives.." from
pkg-lists/hd-media/i386.cfg. Then issued make build_netboot.
Had to install *lots* of packages at this point. The important thing is

libdebian-installer-extra4, libdebian-installer4-dev and
libdebian-installer4 from testing do not satisfy build dependencies.
I had to pin them from unstable.

The resuling initrd wouldn't fit in 8192K ramdisk hence I've increased
ramdisk size to 16384 in pxelinux.cfg.

The installer then booted cleanly, found my usb drive, partioned it
as I wanted it to and installed base system. You guys did a great job
in this area!

Third obstacle:
Even though I tricked installer to recognize my usb
drive, the initrd of base system wouldn't be that smart and would die with:

pivot_root: file not found.
kernel panic: attempted to kill init!

I got stuck on it for a while, but finally came up with simple dirty fix:
 boot installer again,
 mount /target, mount /target/proc, chroot /target
 edit /etc/mkinitrd/modules so that it contains:

 run mkinitrd -o /boot/initrd-2.4.26-1-386
 exit from chroot, umount /target/proc and /target, sync, reboot.

The second stage of debian installation then started and completed
without further problems.

Przemek Brojewski

[1] http://www.storever.com/  Storever refers to www.openbrick.org for
    more information concerning OpenBrick-NG, but sadly openbrick community
    is not even aware of existence of OpenBrick-NG. Their wiki is still
    discussing possible design of OpenBrick-NG. Oh well.

Reply to: