On Mon, Mar 8, 2010 at 12:41 PM, Piyush P Kurur <ppk@cse.iitk.ac.in> wrote:
Hi,
I would like to create a (custom) netboot install image of archlinux to facilitate installation within our department. I have few queries regarding the corresponding mkinitcpio.conf.
1. How do I use custom hooks together with standard hooks *without* installing them in /lib/initcpio/install. Or in other words can I configure mkinitcpio to look for hooks in other locations besides the standard locations.
There are two options that I can think of both of which looks ugly to me.
* install custom hooks in the standard location /lib/initcpio/install. I would don't like this because I don't want to mess up the standard directory for testing these hooks.
* copy all the hooks in the standard location to a new location. Install the custom hooks there as well and set the mkinitcpio to look at this new location. There does not seem to be an option for this, I might be stupid not to spot it, but appropriate fakeroot + chroot can make this work
2. I would like to have the minimal set of packages on the netboot image to reduce size. The actual installation will be from the local mirror of course but some packages are needed to start the process. What is the suggested package set ? Is the whole of base okey or is it an overkill?
3. How does one provide standard packages on the rootdir. I would assume the initial ramdisk should act as the actual root during the entire installation process (I don't want the NFS mounting mess).
The algorithm seems like
(1) install the appropriate packages via pacman --root /foo
(2) get the entire subtree on to the initial ramdisk.
For step 2, I would need to set BINARIES and FILES of mkinitcpio.conf appropriately. I would rather enjoy Vogon poetry. Is there a better way?
Regards,
ppk
What I suggest is this - http://wiki.archlinux.org/index.php/Diskless_network_boot_NFS_root In the above step, use a statically compiled kernel with minimal requied drivers (including the FS which you plan to use) and put it on NFS root. Then once you've booted on the client machine. Then follow this - mkdir /tmp/foo mount <local-disk> /tmp/foo pacman -r /tmp/foo -S base You could also write a shell script which does this job. So just run it as root when you boot into the client machine. But for shell script one point needs to be made clear that the device names /dev/sdXY or /dev/hdXY must be same else you'll end up formatting some other disk. -- Nilesh Govindarajan Site & Server Administrator www.itech7.com