diff options
-rw-r--r-- | hurd/running.mdwn | 5 | ||||
-rw-r--r-- | hurd/running/chroot.mdwn | 54 | ||||
-rw-r--r-- | hurd/running/debian/after_install.mdwn | 72 |
3 files changed, 59 insertions, 72 deletions
diff --git a/hurd/running.mdwn b/hurd/running.mdwn index a96a78c4..41855433 100644 --- a/hurd/running.mdwn +++ b/hurd/running.mdwn @@ -1,5 +1,5 @@ -[[!meta copyright="Copyright © 2007, 2008, 2009, 2011 Free Software Foundation, -Inc."]] +[[!meta copyright="Copyright © 2007, 2008, 2009, 2011, 2012 Free Software +Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this @@ -17,6 +17,7 @@ There are several different ways to run a GNU/Hurd system: * [[microkernel/mach/gnumach/ports/Xen]] - In Xen * [[Live_CD]] * [[QEMU]] - In QEMU +* [[chroots|chroot]] need a couple of tricks to work properly. * [[VirtualBox]] - In VirtualBox * [[vmware]] (**non-free!**) diff --git a/hurd/running/chroot.mdwn b/hurd/running/chroot.mdwn new file mode 100644 index 00000000..29b00a8f --- /dev/null +++ b/hurd/running/chroot.mdwn @@ -0,0 +1,54 @@ +[[!meta copyright="Copyright © 2012 Free Software Foundation, Inc."]] + +[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] + +This documents the currently-needed tricks to successfully build a +[[glibc/chroot]] in GNU/Hurd. + +# Preparation + +For proper translator startup, the chroot storage needs to be handled by a +separate translator, for instance: + + # dd [...] < /dev/zero > storage + # mke2fs storage + # settrans -c chroot /hurd/ext2fs $PWD/storage + +# Unpack + +Debootstrap should be able to build the content: + + # debootstrap sid chroot + +# Tricks + +One current issue to know about chroots is that since passive translators (e.g. +`/servers/socket/1`) are started by the root translator, which is not aware +of the chrooting, these passive translators are started non-chrooted, leading to +a few issues. +[[!tag open_issue_hurd]] + +## Sockets + +Since the passive [[translator/pflocal]] translator will not be chrooted, local +socket creation +will actually happen in the root filesystem. To make things work correctly the +programs inside the chroot need to be able to access them: + + # settrans chroot/servers/socket/1 /hurd/firmlink /servers/socket/1 + # settrans chroot/tmp /hurd/firmlink /tmp + # settrans -c chroot/var/lib/dbus /hurd/firmlink /var/lib/dbus + +## Network + +Unless using a separate IP for the chroot, it is preferrable to share the +[[translator/pfinet]] translator: + + # settrans chroot/servers/socket/2 /hurd/firmlink /servers/socket/2 + # settrans chroot/servers/socket/26 /hurd/firmlink /servers/socket/26 diff --git a/hurd/running/debian/after_install.mdwn b/hurd/running/debian/after_install.mdwn index 36c37281..72ea70a9 100644 --- a/hurd/running/debian/after_install.mdwn +++ b/hurd/running/debian/after_install.mdwn @@ -1,35 +1,7 @@ First steps after installation. -So you have managed to get past the first `native-install` runs in single-user -mode? - -Time to get to work. - -[[!toc]] - - -### Get Networking Running - -[[Network]]. - -Check if your NIC was detected by GNU Mach: - - # devprobe eth0 - -`devprobe` (run as user *root*) will print `eth0` on successful detection. If -it doesn't, your NIC was not detected correctly. You can then try to do the -following (also as user *root*) for getting details: - - # cat /dev/klog > ~/klog - [Wait a second, then press `Ctrl-C'.] - -Now examine the `~/klog` file. - -If the NIC was detected: - - # settrans -fgap /servers/socket/2 /hurd/pfinet -i eth0 -a 192.168.1.3 -g 192.168.1.1 -m 255.255.255.0 - -Or read about how to configure [[DHCP]]. +See <http://www.debian.org/ports/hurd/hurd-install> for configuration bits and +tips and tricks. # Setup GRUB @@ -41,45 +13,5 @@ you. See [[GRUB]]'s page for this. # Setup `apt-get` -Sometimes getting `apt-get` to work is not straightforward. Good mirrors to -put in `/etc/apt/sources.list` are: - - deb http://ftp.debian.org/debian unstable main contrib - deb-src http://ftp.debian.org/debian unstable main contrib - deb http://ftp.debian-ports.org/debian unreleased main - deb-src http://ftp.debian-ports.org/debian unreleased main - -`apt-get` update a couple of times if some file fails to download. - -If when doing your first `apt-get`, `dpkg` complains of missing programs, get root in a login shell (`su -`). - Installing packages without having a network connection is described [[Distrib/DebianAptOffline]]. - -# [[translator/Random]] - -You often need `scp` and `ssh`. There is now a `random-egd` package available which uses -a random translator by Ryan Hunter and the entropy gathering daemon as entropy source. - -See [[Translator/random]] for more information. - -# [[Console]] - -The latest Hurd package in Debian, plus the `native-install` script, creates -all necessary device nodes and other magic. You just need to edit -`/etc/default/hurd-console` to tune the parameters and tell it to start at -bootup. - -You can also call the Hurd console manually with the proper arguments: - - console -d vga -d pc_kbd --repeat=kbd -d pc_mouse --repeat=mouse \ - -d generic_speaker -c /dev/vcs - - -# [[Hurd/DebianXorg]] - -You first must have setup the virtual console. See above. - -# What about package XYZ? - -See if you can find a useful tip in [[package_troubleshooting]]. |