summaryrefslogtreecommitdiff
path: root/hurd/running/debian/CrossInstall.mdwn
blob: c7a099c65c54095b0a06064e528f6d9118331e7d (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. Avoid using the version from Stable since it probably is outdated. In case of problems, make sure to try the Unstable version before reporting the issue.

    # 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.5)
      root (hd0,2)
      kernel /boot/gnumach-1.5-486.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