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 for debian-specific things or 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?