Add two parameters:
img_dev=/dev/sdNM
where /dev/sdNM is the device where .iso is located.
img_loop=/path/to/arch.iso
where /path/to/arch.iso is the full path of the .iso in the device img_dev.
Original idea from Baurzhan Muftakhidinov.
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
-D <install_dir> allow to select install directory on target media
defaults to "arch".
There is a new %INSTALL_DIR% macro for syslinux.cfg.
This is how ISO will look now:
/syslinux only syslinux related files (syslinux.cfg, *.c32, etc)
/arch/ isomounts + *.sqfs images
/arch/boot/ Linux + initramfs + Memtest86+ + other files for early boot stage
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
Newer nbd-server uses config file instead of parameters via cmd line (deprecated).
Also does not use a fixed port (oldstyle).
Sample nbd-server.conf that works with this change:
-- CUT HERE --
[generic]
[archiso]
readonly = true
exportname = /tmp/archlinux.iso
-- CUT HERE --
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
* squashfs images that will be part of read-only branchs for union mount in /
are mounted on /ro_branch/{image_name} instead of /tmpfs/mnt/{image_name}
(and avoid empty dirs on live env under /mnt)
* tmpfs that will be part of read-write branch for union mount in /
is mounted on /rw_branch instead of /tmpfs
* tmpfs that is for store *.sqfs images when copytoram=y, is mounted on
/copytoram instead of /tmpfs.sqfs
* tmpfs_size= parameter renamed to rw_branch_size=
* tmpfs_sqfs_size= parameter renamed to copytoram_size=
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
More generic way than current method, and fix if logic (inverted).
Takes the same actions independent of medium (disk/cdrom).
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
When remastering the image onto a USB volume, you might want to reuse
an existing partition without filling the root with lots of archiso
files. The archisobasedir parameter allows to specify a new root
directory, isomounts and all images will be searched in this directory.
Otherwise archiso_pxe_nbd hook can configure the incorrect network card,
because ipconfig will configure all interfaces available.
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
* Register a mount_hook if booted via PXE. This allows to do all needed
steps before and after calling archiso_mount_handler.
* umount and disconnect network device if copytoram=y
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
nbd (network block device utilities) package is required. This package is in AUR
at this moment: http://aur.archlinux.org/packages.php?ID=9691
Also mkinitcpio-nfs-utils is required for ipconfig.
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
Takes the advantage of already symlinks created on /dev/disk/by-label/ by
60-persistent-storage.rules add by udev hook.
Tested on:
* Real machine as CD-ROM and USB key drive.
* KVM as CD-ROM and DISK (for both modes, in combination with IDE and SCSI)
* VirtualBox as IDE CD-ROM.
IMPORTANT note: Since isohybrid is a hack, if more partitions are added to
USB key drive, filesystem on these partitions MUST have LABEL, otherwise
USB key will fail to boot. Anyway there is an option archisodevice=,
to force and specific device where live-media reside.
(Maybe isohybrid will change the hack method used in a future)
More info at:
http://mailman.archlinux.org/pipermail/arch-releng/2010-March/000890.htmlhttp://mailman.archlinux.org/pipermail/arch-releng/2010-March/000913.html
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
New function _mnt_aufs(). Don't display incorrect message (Adding new aufs...)
when no aufs branch is mounted, because mount type is bind.
Also, makes the code more clean :)
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
Fixes FS#17182: copytoram=y does not work with aufs
The solution is simple, just use a directory outside aufs tree.
* If copytoram=y, then another tmpfs is mounted but on /tmpfs.sqfs
* Add a new option: tmpfs_sqfs_size= (default to 75%)
* Lock cdrom drive is not locked if copytoram=y
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
To make compatible with disablehooks= param. Since "hook_archiso-early"
is not a valid variable name.
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
* Make first /dev/loop0 device at archiso install hook.
* Remove unneeded losetup, all is done directly via mount.
* Images are now mounted on /tmpfs/mnt/image-name instead of
/tmpfs/mnt/loopN, removing unneeded counter.
* Add some variables to make code more readable.
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
Next version of mkinitcpio > 0.6.2 implements mount hook functionality.
So can avoid skipping normal flow of main init script, and removing common
end code with it.
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
* Add archisodevide= boot option (suggested by brain0)
(if declared use it, if not use /dev/archiso created via udev rule)
* Removed redundant modprobe commands,
(modules are loaded automatically on mount -t)
* Other minor changes
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
Some basic changes to make archiso hooks work with the next mkinitcpio 0.6
Tested under KVM, a ""2010.02"" and works fine with it.
NOTE: current mkinitcpio-0.5.99.2-2 does not include "losetup", maybe
will be included in next version, see #[1]. For now must be added manually.
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
Rename ramdisk_size parameter to tmpfs_size to avoid conflict with
the kernel parameter that is for old ramdisk based blockdevs (/dev/ramN)
and confusion to users.
The kernel parameter ramdisk_size=N is in "N * k size", while tmpfs
size=N is in "N * [ k | m | g ] byte size" or "in N% of RAM",
like is used by default on archiso.
This parameter is used only for tmpfs in size option.
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
Implement this feature request:
FS#16835 - isomounts file whithin archiso hook is inflexible
Add an optional "isomounts" kernel command line parameter.
In this way, can have differents combinations of
kernels/ramdisk/filesystems.sqfs on the same media.
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
fstype from klibc don't detect a vfat formatted blockdevice when try to
mount /dev/archiso to /bootmnt. Some users don't use the recommened
method with dd to bring the image to their USB stick. If they for ex.
use Unetbootin to put the iso image on their (v)fat formatted stick they
got lost with a kernel panic cause fstype won't detect vfat, so the
mount and the later squashfs bindings traps.
Signed-off-by: Gerhard Brauer <gerbra@archlinux.de>
Missing slash caused bootmnt to be bound to /real_rootbootmnt
instead of /real_root/bootmnt
See FS#15356
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
If the archisolabel= option is specified on the kernel commandline,
a device /dev/archiso will be created and will be used to boot the
live system.
Patch from brain0 <thomas@archlinux.org>
Signed-off-by: Gerhard Brauer <gerbra@archlinux.de>
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
This should give us *just a bit* more delay before actually trying to do
things with the usb devices. Annoying, but will probably be effective
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
USB boot delay is now handled with the usbdelay kernel param (default=0)
We use the built in delay of usb-storage to control this. by setting the
module's delay param. If your USB device doesn't work on first boot, try
setting usbdelay=10 or so
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
It seems udev trigger/settle doesn't do what we expect,
so we'll add functionality for the rootdelay param back
in here.
This should help fix FS#12896
Original-idea: Gerhard Brauer <gerbra@archlinux.de>
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
This is a hacky way to mount squashfs images at directories
other than the root. We mount the image to a loop device
and then bind it to another directory.
This technically supersedes the 'bind' image type, so that
should be removed...
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
This prevents some cosmetic errors when globbing fails
and the scripts try to mount something silly like "/dev/hd[a-z]"
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>