Debian GNU/Hurd 2013
20130503-22:19

                      Welcome to the exciting world of
                               Debian GNU/Hurd

   This directory contains CD images and pre-installed images for the Debian
   GNU/Hurd distribution.

   Debian is a very extensive collection of software. But it is more. It
   is a complete Operating System (OS) for your computer. And it is free
   (as in "freedom").

   This release is a snapshot of Debian sid at the time of the Wheezy release,
   so it is mostly based on Wheezy. It however also contains a few patched
   packages (seen by +hurd suffix in the version).

   This is *not* part of the official Debian Wheezy release. This is however a
   release of the Debian GNU/Hurd port.



Table of content
****************

* Pre-installed images
* Installer CD images
* Small Examples on Using Translators



Pre-installed image
********************


To give Debian GNU/Hurd a try, it is probably easier to simply run the
preinstalled image, which is provided here:

      $ wget http://ftp.debian-ports.org/debian-cd/hurd-i386/debian-hurd-2013/debian-hurd.img.tar.gz
      $ tar xzf debian-hurd.img.tar.gz

It can be run directly in qemu/kvm:

      $ kvm -no-kvm-irqchip -drive file=debian-hurd*.img,cache=writeback -m 1G

  The -no-kvm-irqchip option, is only needed when running this on Linux
  kernels 2.6.37 and 2.6.38, which do not emulate irq chips that correctly
  (see Debian bug #612105, fixed by 2.6.39)


It can also be run in virtualbox, by first converting to VDI format :

        $ VBoxManage convertfromraw debian-hurd.img debian-hurd.vdi --format vdi


You can then just log in as root without a password.
The qemu/kvm -curses option can be used to run it in text mode, which can help
with the keyboard layout, but it's better to simply reconfigure the layout by
running

dpkg-reconfigure keyboard-configuration

Please make sure to read
http://www.debian.org/ports/hurd/hurd-install
for other configuration information as well as the FAQ:
http://www.gnu.org/software/hurd/faq.html
and known open issues
http://www.gnu.org/software/hurd/open_issues.html

All the debian-hurd.img* files are the same, they are just in various
format, because it has been reported that some tools are not able to cope with
the sparse tar format. The .tar.gz is still the preferred, as it will produce a
sparse file on your disk. You can compare the resulting .img file with the
MD5SUMS file




Installer CD images
*******************



To test the installer images with kvm/qemu:

  * Download:

      $ wget http://ftp.debian-ports.org/debian-cd/hurd-i386/debian-hurd-2013/debian-hurd-2013-i386-DVD-1.iso

  * Create a hard disk image:

      $ kvm-img create hurd-install.qemu 3G

  * Start the installation:

    Since we haven't yet optimized the installer initrd mechanism for memory
    usage at all you will need at least 500MB of memory even for the text
    installer, or the installer will likely crash due to missing memory.

      $ kvm -m 1G -no-kvm-irqchip -drive file=hurd-install.qemu,cache=writeback -cdrom cd-1.iso -boot d

    Note the -no-kvm-irqchip option, which is needed when running this on 2.6.37
    and 2.6.38 Linux kernels, which do not emulate irq chips that correctly
    (see Debian bug #612105, fixed by 2.6.39)

    We recommend not to use a network mirror during installation, since that
    would use the sid distribution, which is often not installable. One can
    instead install just the base system (and the standard task when using CD-1
    or DVD-1). Enabling the use of a mirror and installing packages can be done
    after rebooting into the newly installed system.

On real hardware:

  * Note that the GNU Mach version used here does not have drivers for SATA
    devices. IDE/ATA emulation has to be enabled for those.

  * Installation CDs include the 2.6.32 Linux network drivers, and should
    thus cover a wide range of network boards. There is however no support for
    firmware loading.

When going through the installation:

  * Reminder for qemu: with the user network stack default configuration,
    use the following values:

       IP address: 10.0.2.15
       Netmask: 255.255.0.0
       Gateway: 10.0.2.2
       Nameserver: 10.0.2.3

Remarks:

  * /usr or /usr/local on separate filesystem is not supported yet.

Configuring the installed system:

  * Make sure to see http://www.debian.org/ports/hurd/hurd-install.html for
    more details and network / filesystems / X configuration.
  * Also make sure to check the FAQ
    http://www.gnu.org/software/hurd/faq.html
    and known open issues
    http://www.gnu.org/software/hurd/open_issues.html


Email us to <debian-hurd@lists.debian.org> for debian-specific things or
<bug-hurd@gnu.org> for non-debian-specific things if you have questions or
comments, We are also available on #hurd on Freenet, #debian-hurd on OFTC.





Small Examples on Using Translators
***********************************

The concept of user-space servers, translators, is a very powerful one. Here is
an introductionary text.

Intro
-----

The Hurd has some unique capabilities, and we created this simple image to
enable you to easily try three of them:

  * The simplest of translators: Hello World!
  * Transparent FTP
  * Mount a remote ISO file

Hello World
-----------

To try out the simplest of translators, you can go the following simple steps:

$ touch hello
$ cat hello
$ settrans hello /hurd/hello
$ cat hello
"Hello World!"
$ settrans -g hello
$ cat hello

What you do with these steps is first verifying that the file "hello" is empty.

Then you setup the translator /hurd/hello in the file/node hello.

After that you check the contents of the file, and the translator returns
"Hello World!".

To finish it, you remove the translator from the file "hello" (and tell any
active running instances to go away) via "settrans -g hello". Having done that,
verify that now the file is empty again.

Transparent FTP
---------------

We already setup a a transparent FTP translator for you at /ftp:

With it you can easily access public FTP via the file system, for example the
one from the GNU project:

$ ls /ftp://ftp.gnu.org/

But you can also do this very easily yourself:

$ # Setup the translator on the node ftp:
$ settrans -c ftp: /hurd/hostmux /hurd/ftpfs /

and you can access FTP sites via the pseudo-directory ftp:, for example with

$ ls ftp://ftp.gnu.org/

What you do here is setting up the translator /hurd/hostmux on ftp: and passing
it the translator /hurd/ftpfs to use for resolving accesses as well as / as
additional path component.

ISO file mount
--------------

Now that we can access ftp.gnu.org transparently, let's mount a remote ISO
file:

$ settrans -c mnt /hurd/iso9660fs ftp://ftp.gnu.org/old-gnu/gnu-f2/hurd-F2-main.iso
$ ls mnt/

It is interesting to note that since the ISO9660 format is indexed, ftpfs does
not have to download the whole ISO file, it merely fetches what iso9660fs
requests.

These were only three basic usages of translators on the Hurd. We're sure
you'll quickly see many other ways to use this.

As a last comment: You can setup a translator on any node you have access to,
so you can for example mount any filesystems as normal user.

You might currently be logged in as root, but you could just as well do the
same as normal user.

Why don't you try it out?