Commit Graph

268 Commits

Author SHA1 Message Date
Pierre Schmitz
4a33b67542 Move Makefile to project root to avoid issues with git archive
Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2012-08-03 22:36:22 +02:00
Gerardo Exequiel Pozzi
ab7c443a4a [archiso] Replace rsync with cp
It does not make sense, since filesystem inside the imege is re-formated.

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-08-01 20:16:45 -03:00
Florian Pritz
a2d2022ccf archiso_pxe_http: curl should follow redirects
Signed-off-by: Florian Pritz <bluewind@xinu.at>
2012-08-01 20:16:45 -03:00
Pierre Schmitz
281234509f Add dist function to Makefile
This dist function creates a tar archive of a tag.

Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
2012-07-31 19:52:09 -03:00
Gerardo Exequiel Pozzi
36a2496fad [archiso] archiso_pxe_common: /lib -> /usr/lib
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-07-24 21:20:29 -03:00
Gerardo Exequiel Pozzi
ac2d67929b [archiso] Update Makefile
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-07-24 18:54:28 -03:00
Gerardo Exequiel Pozzi
56c2e88913 [archiso] Remove testiso from Makefile
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-07-23 11:49:29 -03:00
Gerardo Exequiel Pozzi
8312642050 [archiso] Remove testiso script
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-07-22 20:29:18 -03:00
Gerardo Exequiel Pozzi
a1424446a1 [archiso] Add btrfs support as filesystem for *.fs.sfs
Implements FS#30378

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-07-20 17:31:20 -03:00
Gerardo Exequiel Pozzi
5ea02f68fe [archiso] archiso_shutdown: use run_cleanuphook()
Simplify build process, using the same method like in shutdown hook by mkinitcpio
we still need a custom shutdown script for archiso,
since "twisted" structure of block devices.

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-07-17 02:25:18 -03:00
Gerardo Exequiel Pozzi
8e9c65fa5d [archiso] mkarchiso: improve info messages
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-05-29 23:48:24 -03:00
Gerardo Exequiel Pozzi
0b39407e68 [archiso] archiso_pxe_common: add copy_resolvconf= boot option 2012-05-29 23:48:15 -03:00
Gerardo Exequiel Pozzi
36e8d6322f [archiso] use new mkinitcpio API in hooks
Needs mkinitcpio >= 0.9.0

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-05-19 15:29:17 -03:00
Gerardo Exequiel Pozzi
c1ecc9b604 [archiso] archiso_pxe_nfs hook: /lib -> /usr/lib
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-05-03 00:18:06 -03:00
Gerardo Exequiel Pozzi
f844c7ed45 [archiso] Update install hook to new device-mapper udev rules location
device-mapper >= 2.02.95-2

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-04-26 22:08:34 -03:00
Gerardo Exequiel Pozzi
c816a33d0e [archiso] Canonicalize path to dm-devices in used_block_devices
All devices listed at used_block_devices, now are canonicalized.

Fix FS#29538

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-04-19 12:06:07 -03:00
Gerardo Exequiel Pozzi
f12097b2c4 [archiso] mkarchiso: add new pkglist command.
This command makes a list of installed packages on root-image,
on <ISO>/$archisobasedir/pkglist.$arch.txt with the format
<repo>/<package>-<version>

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-04-09 17:41:12 -03:00
Gerardo Exequiel Pozzi
fbb6272b86 [archiso] adjust archiso hook for udev>=181-9
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-04-05 20:05:21 -03:00
Gerardo Exequiel Pozzi
9069e2c103 [archiso] mkarchiso: optionally add EFI "El Torito" boot support.
If EFI/archiso/efiboot.img exists then an alternative "El Torito"
boot image is added to the ISO image compatible for EFI.
This image is a FAT filesystem, that is interpreted by EFI as ESP
(EFI System Partition).

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-04-01 12:04:00 -03:00
Gerardo Exequiel Pozzi
67096caef2 [archiso] Re-order and use long xorrisofs options.
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-04-01 11:06:29 -03:00
Gerardo Exequiel Pozzi
eed6c84e40 [archiso] Set a safe locale to C
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-03-17 13:47:09 -03:00
Gerardo Exequiel Pozzi
911888b150 [archiso] Improve help message of mkarchiso
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-03-17 13:39:40 -03:00
Gerardo Exequiel Pozzi
3d05bef2b9 [archiso] Implement own chroot functions in mkarchiso
* Remove devtools dependency.
* Better control over what files are touched inside chroot (root-image).
  Now: NONE :)
* Two new commands:
  + init: To install {base} group and other needed packages (syslinux for now)
  + run: If we want to run some command inside chroot
         (mkinitcpio, locale-gen, useradd, etc etc...)
* Renamed command: "created" to "install", says much better what does.

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-03-16 02:15:59 -03:00
Gerardo Exequiel Pozzi
ab5d67fe43 [archiso] archiso_shutdown: Avoid mtab warning (not found)
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-03-15 23:43:58 -03:00
Gerardo Exequiel Pozzi
6f9c629393 [archiso] Copy "mount" in archiso_shutdown
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-03-15 23:25:20 -03:00
Gerardo Exequiel Pozzi
1f66a737de [archiso] /lib/initcpio -> /usr/lib/initcpio
Needs mkinitpcio >= 0.8.4

Next changes will be for mdadm and mkinitcpio-nfs-utils:
* /lib/initcpio/udev/11-dm-initramfs.rules
* /lib/initcpio/ipconfig , /lib/initcpio/nfsmount

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-03-04 21:04:37 -03:00
Gerardo Exequiel Pozzi
4f79083856 [archiso] Remove uneeded /run/archiso/img_dev_loop
Superseded by /run/archiso/used_block_devices

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-02-23 00:50:35 -03:00
Gerardo Exequiel Pozzi
354a202bcc [archiso] Update archiso_shutdown hook
* Add libraries from /usr/lib and /sbin/losetup.
* Use used_block_devices to detach loop devices.

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-02-23 00:01:17 -03:00
Gerardo Exequiel Pozzi
5123b25aa1 [archiso] Add /run/archiso/used_block_devices
This list includes block devices of:
* Boot medium [archisodevice] (only if no copytoram= is used)
* Loop medium [img_dev] (only if no copytoram= is used)
* COW space [cowdevice] (only if cowdevice= is used (no tmpfs is used))
* Loop devices used for SquashFS images.
* Loop devices used for device-mapper devices (two per each dm-device, one RO{*.fs} and one RW{*.cow})

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-02-22 23:46:14 -03:00
Gerardo Exequiel Pozzi
f0b4c35337 [archiso] Use losetup/mount instead of mount directly *.sfs
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-02-22 21:18:15 -03:00
Gerardo Exequiel Pozzi
e6c885d29f [archiso] Setup ro loop devs as read-only
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-02-22 21:18:15 -03:00
Gerardo Exequiel Pozzi
9703564262 [archiso] Use _mnt_dev() for SquashFS and dm-mapper
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-02-22 21:18:15 -03:00
Gerardo Exequiel Pozzi
bc4731a0d3 [archiso] Remove uneeded ;
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-02-22 21:18:15 -03:00
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
36f327c6d4 [archiso] simplify _mnt_fs() and _mnt_sfs()
mount is now from util-linux (like in e135003c13)

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-01-05 17:58:12 -03:00
Gerardo Exequiel Pozzi
2b211a9017 [archiso] Make fstab from initramfs
This is needed for initscripts 2012.01, at least the entry for /.
Otherwise / is remounted ro, but not remounted rw later.

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-01-05 17:58:12 -03:00
Gerardo Exequiel Pozzi
882d9fa5ec [archiso] update testiso
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-12-16 16:27:17 -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
Gerardo Exequiel Pozzi
92dbba6c11 [archiso] Cleanup: pxe_curl: Remove download-iso-loopback support.
This was the first implementation that downloads the complete ISO,
but now we have the posibility of download only needed *.sfs files.

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-12-03 17:45:45 -03:00
Gerardo Exequiel Pozzi
305bca4692 [archiso] Cleanup: Remove *.fs support.
This was useful to me during development of dm-snapshot support
to create very quickly isos without wating for SquashFS compression.

Is time to remove this, I think the is no practical usage,
and make the code a bit more simple.

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-12-03 11:22:03 -03:00
Gerardo Exequiel Pozzi
3df0be6a22 [archiso] Do not use PXE NBD as default.
* Now we have more than one PXE boot methods.
* archiso_ndb_srv= accepts special ${pxeserver} parameter like in others PXE hooks.
* This allows to setup network from initramfs without forcing using a special PXE hook.
* Update README

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-12-02 14:12:16 -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
5b9eba924d [archiso] Add checksum support to pxe_curl
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-11-28 12:28:03 -03:00
Gerardo Exequiel Pozzi
cd359bc37a [archiso] Checksum only aitab and *.sfs (per architecture)
We are currently checksuming all files inside $archisobasedir
(aitab, *sfs, kernel/initramfs and boot/syslinux related files)
this is stored in one file only. Its works good for now,
but I think we only need to checksum only aitab and *.sfs if they are needed.
Currently if you boot a dual-iso in i686, also checksum is done
for *.sfs of x86_64. Not a big issue, this just take a bit more time.
The real issue is when booting via PXE with HTTP/FTP methods,
since they download only aitab and needed *.sfs files,
can not use directly the only one file where checksums are stored.

This patch does:

(1) Do not checksum syslinux related files, anyway you are already reach initramfs stage.
(2) Do not checksum kernel/initramfs files, for the same as (1)
(3) Two checksum.${arch}.md5 for each i686 and x86_64 for only aitab and *.sfs.

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-11-28 12:28:03 -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
f097724080 [archiso] Only accepts aitab inside
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
e135003c13 [archiso] simplify _mnt_dev() (mount is now from util-linux)
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-11-28 10:35:05 -03:00
Gerardo Exequiel Pozzi
baf0ae0013 [archiso] Do not bind mount on /bootmnt
Boot media is already available in /run/archiso/bootmnt
if no copytoram is used.

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-11-16 23:18:41 -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
7ab83b8571 [hooks/archiso_pxe_nbd] Remove grep usage
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-11-15 19:37:10 -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
908551ef02 [archiso] Add support for img_label= and allow img_dev same as cow_dev
* Support img_label=
* Allow use img_dev= as cow_device=
* Use new function _mnt_dev() from archiso.
* Check for error while setting loopback device.

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-10-23 21:24:17 -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
e2055835fd [archiso] Allow persistent cow dm-snapshots.
Add some options to control where all COW files will be located.
Until this moment all files are located in a tmpfs filesystem.
Now is posible to set a device via a filesystem label or device node
plus a directory, where all these files will be stored.
All dm-snapshot devices will be persistent by default,
but this can be changed if wanted.

Take care, a filesystem that does not support sparse files maybe
is not the best choice for COW files, because they are created with
the same size (is apparent) like the read-only device (the image.fs inside .sfs).
Of course sooner or later, depending on use, these files actually end up
being as big as the read-only device.

KNOW-ISSUE: On shutdown in step "Unmounting Filesystems" will [FAIL],
    all filesystem except $cow_device, will be unmounted/remounted-ro.
    For this reason this change needs an archiso_shutdown hook, thats
    unmount all block devices used by archiso. (Work in progress)

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-10-23 21:24:17 -03:00
Gerardo Exequiel Pozzi
91e11c30f4 [archiso] Add a new function _mnt_dev(), use it for mounting archisodevice.
Separate this code from main mount hook, and make it more generic.

_mnt_dev(device, mountpoint, flags) ->
    wait for device and mount, launch a shell if something goes wrong.

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-10-23 21:24:17 -03:00
Gerardo Exequiel Pozzi
51db47e74b [archiso] disable progress bar in mksquashfs
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-10-14 22:46:45 -03:00
Gerardo Exequiel Pozzi
bfef0bc1eb [archiso] Unify ->
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-10-12 14:40:19 -03:00
Gerardo Exequiel Pozzi
1dcf439c30 [archiso] Create /etc/mtab as symlink.
This is now supported since util-linux pkg enable it.

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-10-03 21:12:56 -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
14743f4202 [archiso] Switch from cdrkit to libisoburn
* Preparing terrain for UEFI support.
* Also make isohybrid hack in one step.
* Removed UDF layer, since xorriso does not support it.
* Removed unsupported options by xorriso (-uid/-gid/-allow-limited-size)
* Removed option already default in xorriso (-input-charset utf-8)

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-08-29 01:47:57 -03:00
Gerardo Exequiel Pozzi
ad2385c082 [archiso] Use -w <work_dir> instead of cmd <work>, add -o <out_dir>
Default (if not specified) -w work -o out.

-o <out_dir> is only used by 'iso' command.

Adjust build.sh of releng and baseline profile to reflect this change.

<project>
  - work <- $work_dir
  - out  <- $out_dir

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-08-29 01:45:49 -03:00
Gerardo Exequiel Pozzi
8c995ee657 [archiso] Change location of nbd_client.pid
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-08-28 04:07:04 -03:00
Gerardo Exequiel Pozzi
219b43a0bf [archiso] Load module loop in run_hook()
Otherwise archiso_loop_mnt will fail.

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-08-26 20:12:22 -03:00
Gerardo Exequiel Pozzi
23e1cd01cd [archiso] Avoid regenerate checksum -> .iso.
Also put _is_directory_changed() inside 'if' avoiding premature execution if it returns non-zero.

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-08-26 19:23:25 -03:00
Gerardo Exequiel Pozzi
ee5e372c6e [archiso] Add missing 'rm' some files on uninstall
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-08-24 00:10:32 -03:00
Gerardo Exequiel Pozzi
c2aefad9b2 [archiso] Makefile trivial fix (if configs/ already on DESTDIR)
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-08-15 01:07:31 -03:00
Gerardo Exequiel Pozzi
90cfe3ce2c [archiso] Add checksum= boot param
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-08-15 01:07:31 -03:00
Gerardo Exequiel Pozzi
57d2ea1f4b [archiso] Add dm_snap_prefix= boot param.
Default value is "arch". This implies that all device mapper node
for snapshot devices will be for example: arch_root-image.

This helps AIF to hidden these devices from "Device Configuration".

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-08-09 16:28:52 -03:00
Gerardo Exequiel Pozzi
41dd5bf633 [archiso_pxe_nbd] Allow change NBD export name.
Requested at FS#25051

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-07-09 15:14:50 -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
3101e8d904 [archiso] Create correctly loop devs if loop.max_part > 0
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-07-09 15:14:49 -03:00
Gerardo Exequiel Pozzi
f769fed16c [archiso] Update Makefile
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-07-09 15:14:49 -03:00
Gerardo Exequiel Pozzi
bdd302adaa Avoid killing nbd-daemon on shutdown
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-07-09 15:14:49 -03:00
Gerardo Exequiel Pozzi
93763a2d82 [archiso] Delete etc/mtab on _cleanup step
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-07-09 15:14:49 -03:00
Gerardo Exequiel Pozzi
0d895a225a [archiso] Ensure that there is no .fs before create it
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-07-09 15:14:49 -03:00
Gerardo Exequiel Pozzi
98c457c26f [archiso] mark installed packages, after installing it, not before
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
b340aae9b1 [archiso] Update fstab and "source dev" of aufs.
* Change from none -> union (looks like util-linux is confused BUG?)
    Avoid the message: "umount aufs failed: not found" at shutdown.
    #1 mount -t tmpfs none /something
    #2 mount -t tmpfs xxxx /something
    The output of findmnt -rnu -o SOURCE will be blank in #1.

* Change from aufs -> auto, make its more generic.

* Update devpts and shm entries.

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-05-07 17:41:33 -03:00
Gerardo Exequiel Pozzi
54be7d1529 [archiso] Set default SquashFS compressor to XZ
Also change all references from lzma to xz format.

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-04-11 10:25:37 -03:00
Simo Leone
5d775d7236 Fix old port reference in NBD boot script 2011-03-20 16:51:46 -03:00
Gerardo Exequiel Pozzi
6bcbf95f82 [archiso] Fix tabs/spaces in mkarchiso
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2010-12-08 14:47:45 -03:00
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
85d2ddd762 Unify scheme of sed replacements.
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2010-12-07 23:48:24 -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
02caf25be9 [archiso] Place *.sqfs images in /${install_dir}/${arch}/
Unify with dir layout of -dual images.

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2010-12-07 23:48:23 -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
Gerardo Exequiel Pozzi
487436b8ea [archiso] Add support for squashfs compression types
Add a note about supported status in Linux versions.
Needs squashfs-tools-4.1 (now on extra).

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2010-10-18 18:59:31 -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