63f9dc1674
Some rudimentary documentation that mkarchiso -h doesn't quite cover. Poor humor comes free with the deal. Signed-off-by: Simo Leone <simo@archlinux.org>
86 lines
3.8 KiB
Plaintext
86 lines
3.8 KiB
Plaintext
Archiso For Dummies Like Me and You
|
|
-------------------------------------
|
|
|
|
|
|
-What the hell is Archiso?
|
|
|
|
Archiso is a small set of bash scripts that is capable of building fully
|
|
functional ArchLinux-based liveCDs. It is a very generic tool, so it
|
|
could potentially be used to generate anything from rescue systems,
|
|
to install disks, to special interest liveCD systems, and who knows what
|
|
else. Simply put, if it involves Arch on a shiny coaster, it can do it.
|
|
|
|
|
|
-Alright, so how does one install it?
|
|
|
|
First off, Archiso has some dependencies:
|
|
- mkinitcpio
|
|
- cdrkit
|
|
- squashfs-tools
|
|
- mkarchroot from the devtools package
|
|
Archiso itself can be installed with the handy dandy included Makefile,
|
|
and the incantation 'make install'.
|
|
|
|
|
|
-Great, so how do you use this thing?
|
|
|
|
The heart and soul of Archiso is mkarchiso. All of its options are
|
|
documented in its usage output, so we won't go into detail here.
|
|
Instead, let's go over the general process.
|
|
|
|
The first thing you should probably do is create a directory to work
|
|
in, and cd to it. This'll help keep things organized. Next, you'll want
|
|
to create a mkinitcpio config file that suits your needs. Typically this
|
|
means modifying whatever hooks you want. A typical set of hooks for
|
|
archiso looks something like this:
|
|
|
|
HOOKS="base udev boot-cd archiso ide scsi sata usb fw filesystems"
|
|
|
|
If you're creating an image for a bootable usb device, you'll want to
|
|
use boot-usb instead of boot-cd. It's probably worth mentioning that
|
|
hardware autodetection and things of that nature do not belong here.
|
|
Only what's necessary to get the system on its feet, and out of the
|
|
initcpio really belong here, fancier stuff can be done on the booted
|
|
system anyway.
|
|
|
|
You'll also want to create a list of packages you want installed on your
|
|
liveCD system. A file full of package names, one-per-line, is the format
|
|
for this. Typically you'll want BASE and a kernel as a bare minimum, but
|
|
you're free to install whatever else you want (this is *great* for
|
|
special interest liveCDs, just specify packages you want and gogogo).
|
|
|
|
The last item of importance is what are called addons. Basically this
|
|
means any other crap you might want to include on your liveCD, including
|
|
binary package repos, special configurations, random files, we don't
|
|
know, be creative. mkarchiso expects them all to be put in a single
|
|
directory, with an fstab-like config file. Currently two types of addons
|
|
are supported, squashfs images that get layered onto the root union, and
|
|
plain directories which can be bind mounted anywhere under the root.
|
|
|
|
If you want to add a squashfs union layer:
|
|
- Set up whatever you want to include in a separate directory someplace,
|
|
as if that directory was / . Then run mksquahfs on it, and copy the
|
|
created image to your addons directory.
|
|
- Add an entry to your addons config file (which must be named 'config',
|
|
by the way). Typical squashfs entries look like this:
|
|
live_overlay.sqfs / squashfs
|
|
Where the first component is the path to the image relative to your
|
|
addons directory, the second is the mountpoint (irrelevant for
|
|
squashfs, they will all get layered at /) and of course the third
|
|
component is the type.
|
|
- Be aware that the order of entries on the config matters! Entries will
|
|
be layered on top of one another, later entries are mounted _UNDER_
|
|
earlier entries (an unfortunate counterintuitive result of the way we
|
|
have to mount the unions).
|
|
|
|
If you want to add plain directories to bind mount:
|
|
- Set up your directory somewhere, and copy it to your addon directory.
|
|
- Add an entry to your addons config file, example entry:
|
|
core /packages bind
|
|
where the first component is the path to the directory relative to
|
|
your addons directory, the second component is where you'd like it
|
|
bind-mounted relative to the liveCD's root filesystem, and the last
|
|
component is the type.
|
|
|
|
vim: textwidth=72
|