path: root/README
diff options
authorSimo Leone <>2007-10-17 15:37:04 -0500
committerSimo Leone <>2007-10-24 02:05:32 -0500
commit63f9dc16744e431496ef5d8593b2e05673c25867 (patch)
treedfef71ccb9442264f879abb8dd156db22825cbeb /README
parent4b62e904754f7dbf96c178f26d1bcc193d94a281 (diff)
Added README with some documentation
Some rudimentary documentation that mkarchiso -h doesn't quite cover. Poor humor comes free with the deal. Signed-off-by: Simo Leone <>
Diffstat (limited to 'README')
1 files changed, 85 insertions, 0 deletions
diff --git a/README b/README
new file mode 100644
index 0000000..68c09cd
--- /dev/null
+++ b/README
@@ -0,0 +1,85 @@
+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