Commit Graph

62 Commits

Author SHA1 Message Date
Gerardo Exequiel Pozzi
0ff40f153a [archiso] Use poll_device() in _pxe_nbd and _loop_mnt hooks.
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2010-12-08 14:44:48 -03:00
Gerardo Exequiel Pozzi
06a8c66eae [archiso] Add support to mount iso in loopback mode.
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>
2010-12-07 23:48:24 -03:00
Gerardo Exequiel Pozzi
c186a206a1 [archiso] Add -D <install_dir> option to mkarchiso
-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>
2010-11-30 21:55:13 -03:00
Thomas Bächler
13c541e8a6 Do not unset archisobasedir when it's set
This was wrong and can never have worked. Fix it.
2010-10-17 16:35:27 +02:00
Gerardo Exequiel Pozzi
24885e4c81 [archiso] Update nbd hook to match newer nbd operation mode.
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>
2010-10-12 01:33:04 -03:00
Gerardo Exequiel Pozzi
7725dba216 [archiso_pxe_nbd] Remove unneeded umount commands
This step is now done at archiso hook (commit 1fc3a61b75)

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2010-07-13 21:40:49 -03:00
Gerardo Exequiel Pozzi
6adf48d06b Call launch_interactive_shell in more cases of error.
A shell prompt is at least better than a kernel panic :)

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2010-07-09 16:46:29 -03:00
Gerardo Exequiel Pozzi
1bbeeb0e5b Rename directories and parameteres to be more descriptive
* 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>
2010-07-09 16:14:55 -03:00
Gerardo Exequiel Pozzi
9154b02881 First mount ${archisodevice} before other mounts
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2010-07-09 15:36:51 -03:00
Gerardo Exequiel Pozzi
1fc3a61b75 archiso hook: umount /bootmnt if copytoram=y
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>
2010-07-08 03:44:43 -03:00
Gerardo Exequiel Pozzi
1d9d75beb4 Mount tmpfs filesystems with mode=0755
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2010-07-05 19:36:11 -03:00
Thomas Bächler
558eaafe9f Add optional command line parameter: archisobasedir
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.
2010-06-04 22:37:51 +02:00
Gerardo Exequiel Pozzi
a60a68eb88 [archiso] Add support to setups with more than one network card.
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>
2010-03-21 18:51:37 -03:00
Gerardo Exequiel Pozzi
7483cffb30 [archiso] Use a mount handler in archiso_pxe_nbd hook
* 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>
2010-03-18 12:03:59 -03:00
Gerardo Exequiel Pozzi
fffe690a73 [archiso] Rename nbd hook to archiso_nbd
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2010-03-18 01:01:13 -03:00
Gerardo Exequiel Pozzi
830555f71a [archiso] Add nbd hook, to make posible boot archiso from PXE via a NBD.
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>
2010-03-17 11:12:46 -03:00
Gerardo Exequiel Pozzi
fc9a01e713 Remove archiso_early hook, use /dev/disk/by-label/${archisolabel} instead.
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.html
http://mailman.archlinux.org/pipermail/arch-releng/2010-March/000913.html

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2010-03-16 01:53:40 -03:00
Gerardo Exequiel Pozzi
827f6a3f2b Fixed msg about copying images to RAM
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2010-03-15 23:58:55 -03:00
Gerardo Exequiel Pozzi
4609c1c2d0 Add -p to blkid in hooks, to bypass the cache like in udev rules.
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2010-03-06 19:12:04 -03:00
Gerardo Exequiel Pozzi
4d37d70884 Split aufs mount command from _mnt_squashfs()
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>
2010-03-01 10:59:11 -03:00
Gerardo Exequiel Pozzi
c65f463ce3 Welcome back copytoram= option
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>
2010-03-01 10:39:01 -03:00
Gerardo Exequiel Pozzi
b7ca4bf281 Rename archiso-early hook to archiso_early
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>
2010-02-18 00:10:39 -03:00
Gerardo Exequiel Pozzi
be521f8658 Removed a non-working option: copytoram
Keep the code clean.
For more reference see FS#17182 to view what is the issue

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2010-02-17 19:24:27 -03:00
Gerardo Exequiel Pozzi
6462dc6e70 Fix coding style in archiso hook
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2010-02-17 19:23:27 -03:00
Gerardo Exequiel Pozzi
211f201644 Pass $newroot as part of the $mountpoint avoiding a global variable
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2010-02-17 19:09:00 -03:00
Gerardo Exequiel Pozzi
7d7dad06e2 Take advantage of module autoloading when mounting images as loop
* 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>
2010-02-17 19:07:14 -03:00
Gerardo Exequiel Pozzi
59d7a39994 Drop to recovery shell when mounting main media filesystem fails.
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2010-02-17 19:05:44 -03:00
Gerardo Exequiel Pozzi
b880be1ae9 Implement mount hook function in archiso hook.
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>
2010-02-16 16:59:18 -03:00
Gerardo Exequiel Pozzi
5f0614b42f Remove special handling for vfat, all done via blkid
* 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>
2010-02-06 19:27:16 -06:00
Gerardo Exequiel Pozzi
1baefc75a6 Update archiso hooks to work with next mkinitcpio 0.6
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>
2010-02-06 19:27:16 -06:00
Gerardo Exequiel Pozzi
2b9993073c Add an error message when mounting aufs fails, then exit 1
Closes FS#13381.

Waiting 30 seconds for device /dev/archiso ...
SUCCESS: Mounted archiso volume successfully.
squashfs: version 4.0 (2009/01/31) Phillip Lougher
aufs 2-standalone.tree-20090907
:: Mounting root (aufs) filesystem
aufs au_xino_do_write:371:mount[407]: I/O Error, write failed (4294967268)
aufs au_xino_set:1115:mount[407]: I/O Error, failed creating xino(-5).
mount: Invalid argument
ERROR: while mounting root (aufs) filesystem.
Kernel panic - not syncing: Attempted to kill init!

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2009-12-01 13:16:54 -08:00
Gerardo Exequiel Pozzi
38d828f749 Only lock the optical drive if mounted from this
Check if FSTYPE is iso9660 or UDF, and only in this case look the optical drive.

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2009-11-17 02:57:51 -03:00
Gerardo Exequiel Pozzi
ed97ef03a4 Rename ramdisk_size parameter to tmpfs_size to avoid conflict
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>
2009-11-17 00:48:26 -03:00
Gerardo Exequiel Pozzi
3f1ee07d84 Support custom isomounts in archiso hook.
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>
2009-10-26 02:02:59 -03:00
Gerhard Brauer
fd93e7c9bd Added vfat support to mount /dev/archiso
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>
2009-08-25 15:54:10 +02:00
Aaron Griffin
1dbbd6afcb Fix mount loop test for bindings
test -f will fail if we wanted to bind to a directory,
so use test -r instead.

See FS#15356

Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2009-08-10 12:05:15 -07:00
Aaron Griffin
2aca746d58 Ensure bootmnt is bound properly into device root
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>
2009-08-10 12:03:25 -07:00
Gerhard Brauer
9794a6fb7c Use the archisolabel= command line option to mount the archiso device.
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>
2009-07-27 11:03:38 -07:00
Sven-Hendrik Haase
6be0f68611 Fix a typo in the archiso hook
remount,append=: should be remount,append:

Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2009-06-12 07:28:57 -07:00
Aaron Griffin
71d8575fae Replace aufs 'add' with 'append'
Change via AUR package

Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2009-06-08 12:36:28 -07:00
Aaron Griffin
8d10415b04 Replace unionfs with aufs
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2009-04-14 14:38:11 -05:00
Aaron Griffin
b3d8310dcb Fix a typo in the archiso-early hook
Wrong slash! No idea how that happened :)

Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2009-01-30 10:50:43 -08:00
Aaron Griffin
f852276274 Increment usbdelay by 1 before sleeping
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>
2009-01-29 09:08:36 -08:00
Loui Chang
7a98a216de Fix typos, formatting, and vague language where possible.
Signed-off-by: Loui Chang <louipc.ist@gmail.com>
[Fixed menu.lst: LiveCD -> Live CD -aaron]
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2009-01-26 22:10:09 -06:00
Aaron Griffin
8a37489379 Advanced USB delay handling
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>
2009-01-24 20:17:54 -06:00
Aaron Griffin
2f108b208b Add a manual sleep and rootdelay
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>
2009-01-24 16:21:30 -06:00
Aaron Griffin
571aa15309 Fix the way squashfs mountpoints are handled
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>
2008-12-23 20:12:20 -08:00
Gerhard Brauer
f7d183588c Fix the last "device exists check"
Looks like my last-minute addition was goofed.
Use && not ||

Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2008-12-23 07:36:54 -08:00
Aaron Griffin
29f5c0373c Add existence checks to the boot-media scan
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>
2008-12-23 02:17:59 -06:00
Aaron Griffin
f1c46e0d3f Cleanup archiso hook
Fix squashfs mounting of all isomounts images, along
with a few other changes

Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2008-12-23 00:51:20 -06:00