Commit Graph

38 Commits

Author SHA1 Message Date
Gerardo Exequiel Pozzi
27940c420f [archiso] Misc style cleanups
* Add #!/bin/bash to install hooks and fixed vimlines.
* Removed empty variables.
* Reorder variables, adjust brace/parens in functions.
* Removed things implemented in base hook (/tmp, /etc/fstab).

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-02-22 21:18:07 -03:00
Gerardo Exequiel Pozzi
c593c2bd24 [archiso] Avoid full path in add_binary
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-02-03 10:58:01 -03:00
Gerardo Exequiel Pozzi
0720ac9bd4 [archiso] Refactor: Use losetup from util-linux
New losetup from util-linux 2.21 uses new /dev/loop-control from Linux 3.1.

Needs mkinitcpio-0.8.2+ (provides modules.devname, or workaround with earlymodules=loop)

Get advantages from it! Removing custom shell code.

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-01-11 04:44:41 -03:00
Gerardo Exequiel Pozzi
dceb5a029f [archiso] Rename archiso_curl_url= to archiso_http_srv=
Also rename curlspace_size= to archiso_http_spc=

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-12-04 17:18:06 -03:00
Gerardo Exequiel Pozzi
9ca157c140 [archiso] archiso_pxe_curl rename to archiso_pxe_http
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-12-03 18:08:57 -03:00
Thomas Bächler
cd91ad28b0 Add common KMS modules to the releng initramfs image.
On machines with common graphics chipsets (radeon, intel, nvidia), enable
KMS early. Downloading images from a remote server can take time, better
view the status with a nice resolution.
2011-11-29 09:53:22 -03:00
Gerardo Exequiel Pozzi
f3a3526ab0 [archiso] Fix libnss symlinks.
Otherwise does not work.

22100 Nov 29 09:29 ./lib/libnss_dns-2.14.1.so
   20 Nov 29 09:29 ./lib/libnss_dns.so.2 -> libnss_dns-2.14.1.so
46732 Nov 29 09:29 ./lib/libnss_files-2.14.1.so
   22 Nov 29 09:29 ./lib/libnss_files.so.2 -> libnss_files-2.14.1.so

Looks like my test was made before introducing symlinks
and using directly libnss_dns-$VERSION.so.2 as libnss_dns.so.2.

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-11-29 09:42:46 -03:00
Gerardo Exequiel Pozzi
8bd067461d [archiso] Add DNS resolver support to archiso_pxe_common
[ramfs /]# cat /etc/resolv.conf
nameserver 192.168.0.77
[ramfs /]# curl -O http://releng.archlinux.org/pxeboot/README
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1129  100  1129    0     0   2191      0 --:--:-- --:--:-- --:--:--  4589
[ramfs /]#

Do not "add_binary /lib/libnss_dns.so.2", because will add libnss_dns-VERSION.so.2 as libnss_dns.so.2
Is not an issue will work (nobody links directly to VERSION), but is not nice.

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-11-28 12:28:03 -03:00
Gerardo Exequiel Pozzi
76dea1654e [archiso] Add PXE NFS support
It add support for using *.sfs images via NFS.

It must be located after archiso_pxe_nbd in mkinitcpio.conf, in that way
NBD is the default.

New boot parameters:

    archiso_nfs_srv=IP:/path
         Set the NFS IP and path. Accepts ${pxeserver} as IP.

    archiso_nfs_opt= Sets NFS mount opts (comma separated)
                    Defaults to:
                      port            = as given by server portmap daemon
                      rsize           = 1024
                      wsize           = 1024
                      timeo           = 7
                      retrans         = 3
                      acregmin        = 3
                      acregmax        = 60
                      acdirmin        = 30
                      acdirmax        = 60
                      flags           = hard, nointr, noposix, cto, ac

:: Running Hook [archiso_pxe_common]
IP-Config: eth0 hardware address 52:54:00:12:34:57 mtu 1500
IP-Config: eth0 guessed broadcast address 192.168.0.255
IP-Config: eth0 guessed nameserver address 192.168.0.218
IP-Config: eth0 complete (from 192.168.0.218):
 address: 192.168.0.90     broadcast: 192.168.0.255    netmask: 255.255.255.0
 gateway: 192.168.0.218    dns0     : 192.168.0.218    dns1   : 0.0.0.0
 rootserver: 192.168.0.218 rootpath:
 filename  :
:: Running Hook [archiso_pxe_nbd]
:: Running Hook [archiso_pxe_curl]
:: Running Hook [archiso_pxe_nfs]
:: Mounting '192.168.0.77:/mnt/iso'

...
192.168.0.77:/mnt/iso/ on /run/archiso/bootmnt type nfs (rw,relatime,vers=3,rsize=524288,wsize=524288,namlen=255,hard,nolock,proto=tcp,port=65535,timeo=7,retrans=3,sec=sys,local_lock=all,addr=192.168.0.77)
...

My /etc/exports
/mnt/iso 192.168.0.90(ro,no_subtree_check,no_root_squash)
2011-11-28 12:28:03 -03:00
Gerardo Exequiel Pozzi
8eb4c624dc [archiso] Add archiso_pxe_curl hook
Its add support for downloading the ISO image via HTTP/FTP with curl or download *.sfs files.
The files are downloaded on /run/archiso/curlspace (tmpfs) and setup a loop dev from it
(like in archiso_loop_mnt) in the ISO case, or just do a bind mount to
/run/archiso/bootmnt in the other case.

This hook must be located after archiso_pxe_nbd in mkinitcpio.conf, in that way
NBD is the default.

New bootparm:
* archiso_curl_url=(first form)
    archiso_curl_url=http://192.168.0.7/archlinux/iso/archlinux.iso (absolute form)
        Use an absolute URL. Fetch the entire ISO
    archiso_curl_url=ftp://${pxeserver}/archlinux/iso/archlinux.iso (relative form)
        Use the as IP the same server where PXE reside.  Fetch the entire ISO

* archiso_curl_url=(second form)
    archiso_curl_url=http://192.168.0.7/archlinux/iso/unpacked (absolute form)
        Use an absolute URL. Where unpacked (an example name) is a directory where
        ${archisobasedir} ("arch" by default) is located with all *.sfs.
        This fetch only needed files.
    archiso_curl_url=ftp://${pxeserver}/archlinux/iso/unpacked (relative form)
        Use the as IP the same server where PXE reside. Where unpacked (an example name)
        is a directory where ${archisobasedir} ("arch" by default)
        is located with all *.sfs. This fetch only needed files.

* curlspace_size= Set a size for a tmpfs filesystem where files are downloaded.

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-11-28 12:28:03 -03:00
Gerardo Exequiel Pozzi
1edaf15cef [archiso] Split archiso_pxe_nbd in two hooks.
One hook only setup the network device (archiso_pxe_common) the other
setup the NBD client (archiso_pxe_nbd).

New bootparam:
    archiso_pxe_srv=IP
        Allow to set an IP different from the PXE server.

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-11-28 12:28:03 -03:00
Gerardo Exequiel Pozzi
334db092b5 [archiso] Check if /run/archiso/bootmnt is a mountpoint.
In this way allow to mount /run/archiso/bootmnt from another hook,
but still use the logic from the main mount_hook, skipping only this mount.

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-11-28 10:35:05 -03:00
Gerardo Exequiel Pozzi
e03ed816e0 [archiso] Use different logic when archisodevice == cow_device
* Now bootmnt/img_dev is always a ro-mount,
  and cowspace is first ro-mount then rw-mount.

* Fix a "hidden" bug: at the time of test [[ -ef ]], if devices nodes
  are not ready, such test will fail then archisodevice will mounted ro and
  when cow_device is mounted to be rw it fails.
  (I recently suffered this on a machine with slow USB)

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-11-28 10:35:05 -03:00
Gerardo Exequiel Pozzi
da813e5b9d [hooks/archiso_pxe_nbd] Refactor, remove sed usage.
* ipconfig cmd writes a file in /tmp that is ready for direct evaluation.
We can use this instead of parsing the output, to do this some variable
renames are needed.

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-11-16 16:37:04 -03:00
Gerardo Exequiel Pozzi
469b5b2c58 [archiso] install hook cleanups
* Remove IDE stuff.
* Remove modules that can be added via relevant hooks.
* Replace sata with virtio in baseline profile.

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-11-05 21:03:35 -03:00
Gerardo Exequiel Pozzi
59ad1113d9 [archiso] Add archiso_shutdown hook.
STATUS: Working (std boot, loop_mnt, pxe) with copytoram=[y|n].

NEEDS: initscript > 2011.07.3, mkinitcpio > 0.7.2, mkinitcpio-busybox > 1.18.5-1

Purpose: we need this for propertly unmount $cow_device,
used for persistent dm-snapshot devices.

This hook is based on work from Tom Gundersen[#1],
but adapted for archiso things (specially the shutdown script)

[#1] http://mailman.archlinux.org/pipermail/arch-projects/2011-July/001549.html
[#2] http://projects.archlinux.org/initscripts.git/commit/?id=1fa7b4b453e96533ae1db3630031285e5fc302b3
[#3] http://mailman.archlinux.org/pipermail/arch-projects/2011-August/001749.html

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-10-23 21:24:18 -03:00
Gerardo Exequiel Pozzi
90fb8ea480 [archiso] Mount all fs on /run/archiso instead of /
This allow to take control again of these mountpoints outside initramfs.
(i.e: on deinitramfs stage at shutdown for unmount it)

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-10-23 21:24:17 -03:00
Gerardo Exequiel Pozzi
8ea61d2b28 [archiso] Cleanup archiso install hook.
* These files was added during developement stage of dm-snapshot branch
  of archiso. Never was used, sinse archiso works directly with dmsetup
  and with device nodes in /dev/mapper/

* Added 11-dm-initramfs.rules to keep dm info about nodes persistent
  in udev db across initramfs/real-root.

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-08-30 23:21:11 -03:00
Gerardo Exequiel Pozzi
a55fc14e24 [archiso] Integrate omit_kill_nbd_client logic in hook.
This makes archiso_pxe_nbd functionallity full-independient from
archiso profiles (configs/*).

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-08-29 17:03:00 -03:00
Gerardo Exequiel Pozzi
8fa4f8dedf [archiso] Update for mkinitcpio >= 0.7
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-07-09 15:14:49 -03:00
Gerardo Exequiel Pozzi
85d243ff58 [archiso] Use dm-snapshot instead of aufs2 (A.K.A. "The Big Commit")
* Use device mapper + snapshot module, instead union layer filesystem.
  * A block-level approach vs vfs-level.
  * No more unofficial (Linux) things.
  * More memory is needed.
* Refactor mkarchiso.
* Refactor hooks/archiso.
* Fix install/archiso_pxe_nbd
  (due recent change in mkinitcpio-0.6.15 on checked_modules()/all_modules())
  [Thanks Dave for the improved workaround]
* New configs/releng to build official images.
  * Works with a Bash script instead of Makefile.
    (better control and easy to maintain)
* Remove configs/syslinux-iso.
* Remove archiso2dual script. Integrate functionality in configs/releng.
* New configs/baseline to build the most basic live medium or use as template.
* New README (draft). [Thanks Dieter for fixing english grammar]

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-06-18 18:38:27 -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
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
f0aba9b876 Make it compatible with latest mkinitcpio.
Latest init script mounts a /dev FS, so /dev/loop0 will disappear.
Create loop0 on /lib/udev/devices so udev copy to /dev on startup.

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2010-06-23 10:03:14 +02:00
Thomas Bächler
aeaec35905 archiso_pxe_nbd: Remove unnecessary/unsupported network modules
The archiso_pxe_nbd hook adds all network modules, including ones that
are not supported: The hook only supports ethernet devices, so there
is no need to add wireless, wimax, ppp, irda and plip modules.

Adding the wireless modules had an undesired side effect: The
wireless driver was loaded in the initramfs stage, where the
required crypto modules were unavailable. This caused the
initialization of the wireless devices to fail.

This patch removes all network modules except ethernet.
2010-05-16 11:29:15 +02:00
Thomas Bächler
e7d88f5237 archiso: Support booting from a virtio CD drive 2010-05-09 13:51:59 +02: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
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
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
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
7dd1aa150d Fix small typo in install/archiso for initcpio
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2009-10-21 03:22:39 -03:00
Aaron Griffin
91fb1fef4f Missed aufs module in mkinitcpio install script
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2009-04-17 09:19:15 -07: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
9417199206 Unify initcpio hooks to one glorious archiso hook
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2008-09-06 21:06:39 -05:00
Aaron Griffin
8966351b12 Split mkarchiso and configs into logical parts
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
2008-09-06 20:39:35 -05:00