summaryrefslogtreecommitdiff
path: root/hurd/running/debian/CrossInstall.mdwn
blob: eca47a862fa8bd8abc62a6b616fc6cfda59389f7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
## <a name="Easy_install_with_CrossHurd"> Easy install with CrossHurd </a>

Qurious about the Hurd? Have a 1-5 GiB partition free? Let's install GNU/Hurd on it!

### <a name="Preparing_the_partition"> Preparing the partition </a>

We'll assume you have a partition ready, for the sake of argument we use an example here: /dev/hda3 is the Hurd partition (type: Linux) and /dev/hda4 is the Linux swap that we'll reuse.

First we create the Ext2 filesystem, notice the `hurd` option.

    # mke2fs -o hurd /dev/DEVICE

Next we create a useful mountpoint and mount the partition.

    # mkdir /gnu
    # mount /dev/hda3 /gnu

### <a name="Retrieving_CrossHurd"> Retrieving CrossHurd </a>

Unless you don't run Debian GNU/Linux download it from <http://packages.debian.org/crosshurd>, or simply apt-get the package from Testing or Unstable.

    # apt-get install crosshurd

### <a name="Cross_installing"> Cross installing </a>

The crosshurd package only operates in the given target directory, which is the first question asked when running the program.

    # cd /gnu
    # crosshurd

Answer the questions you get: $ What is the target directory?: `/gnu` $ Target Debian system?: gnu $ Target CPU?: i386

Now the program starts retrieving all the necessary base packages.

### <a name="Preparing_to_reboot"> Preparing to reboot </a>

When all packages have been extracted we must prepare [[GRUB]] for the Hurd when we reboot. Add the below entry to your `/boot/grub/menu.lst` file to boot the Hurd in single user mode (-s). Single user mode is needed only for the two reboots when running the Native Install.

    title GNU (kernel GNUmach 1.3)
      root (hd0,2)
      kernel /boot/gnumach.gz root=device:hd0s3 -s
      module /hurd/ext2fs.static                           \
           --multiboot-command-line=${kernel-command-line} \
           --host-priv-port=${host-port}                   \
           --device-master-port=${device-port}             \
           --exec-server-task=${exec-task}                 \
           -T typed ${root} $(task-create) $(task-resume)
      module /lib/ld.so.1 /hurd/exec $(exec-task=task-create)

**_Nota Bene:_** In your menu file there should be no extra white space after the back slashes.

### <a name="Native_install"> Native install </a>

Ah, reboot and select "GNU (kernel GNUmach 1.3)" from the Grub menu. At the prompt, setup TERM and run the native-install script.

    # export TERM=mach
    # ./native-install

When done the native install requests that you reboot once again and rerun native-install.

    # reboot
    ...
    # export TERM=mach
    # ./native-install

Done, continue setting up your system.

----

Jeff Bailey has set up a system where you can install a Hurd system without having to use CDs. It's another type of cross-installation method which uses Debian package management tools to get the packages required as opposed to the one single big tarball.

As of 2005-03-22, the latest version of crosshurd is 1.7.11. It can be found at <http://packages.debian.org/crosshurd>.

-- [[Main/PeterMelville]] - 12 Jun 2004