diff options
author | Nicolás Reynolds <apoyosis@correo.inta.gob.ar> | 2011-07-20 16:01:16 -0300 |
---|---|---|
committer | Nicolás Reynolds <apoyosis@correo.inta.gob.ar> | 2011-07-20 16:01:16 -0300 |
commit | 1a87fac19da7cf748c7f42d1ec183cff00998016 (patch) | |
tree | e1754bf58be446c0612a0460abae9cf879f29fa2 /archiso | |
parent | fea6291aff50468dd0f1e40c85d6d9ee7ca972a2 (diff) | |
parent | 27e472451e39bcec4b785101d2964e6d5f8a91d5 (diff) |
Merge branch 'master' of https://projects.archlinux.org/git/archiso
Conflicts:
README
configs/baseline/build.sh
configs/releng/build.sh
configs/releng/packages.i686
configs/releng/packages.x86_64
configs/releng/root-image/etc/rc.d/archiso
Diffstat (limited to 'archiso')
-rw-r--r-- | archiso/Makefile | 6 | ||||
-rw-r--r-- | archiso/hooks/archiso | 16 | ||||
-rw-r--r-- | archiso/hooks/archiso_pxe_nbd | 8 | ||||
-rw-r--r-- | archiso/install/archiso | 2 | ||||
-rw-r--r-- | archiso/install/archiso_loop_mnt | 2 | ||||
-rw-r--r-- | archiso/install/archiso_pxe_nbd | 2 | ||||
-rwxr-xr-x | archiso/mkarchiso | 10 |
7 files changed, 31 insertions, 15 deletions
diff --git a/archiso/Makefile b/archiso/Makefile index 74f9ff2..78dd534 100644 --- a/archiso/Makefile +++ b/archiso/Makefile @@ -1,12 +1,14 @@ all: -install: install-program install-examples install-doc +install: install-program install-hooks install-examples install-doc install-program: # install to sbin since script only usable by root install -D -m 755 mkarchiso $(DESTDIR)/usr/sbin/mkarchiso # testiso can be used by anyone install -D -m 755 testiso $(DESTDIR)/usr/bin/testiso + +install-hooks: # hooks/install are needed by mkinitcpio install -D -m 644 hooks/archiso $(DESTDIR)/lib/initcpio/hooks/archiso install -D -m 644 install/archiso $(DESTDIR)/lib/initcpio/install/archiso @@ -33,4 +35,4 @@ uninstall: rm -f $(DESTDIR)/lib/initcpio/install/archiso_pxe_nbd rm -rf $(DESTDIR)/usr/share/archiso/ -.PHONY: install install-program install-examples install-doc uninstall +.PHONY: install install-program install-hooks install-examples install-doc uninstall diff --git a/archiso/hooks/archiso b/archiso/hooks/archiso index b81bbf7..7e2997a 100644 --- a/archiso/hooks/archiso +++ b/archiso/hooks/archiso @@ -1,22 +1,26 @@ # Initialize loopback device logic (we using on-demand mode) # args: none _init_loop_dev() { - loop_dev_cnt=99 + modprobe loop + loop_dev_count=99 + loop_dev_range=$(cat /sys/block/loop0/range) + loop_dev_minor=$((loop_dev_count*loop_dev_range)) } # Call this function before _make_loop_dev() each time. # args: none _next_loop_dev() { - loop_dev_cnt=$((loop_dev_cnt+1)) + loop_dev_count=$((loop_dev_count+1)) + loop_dev_minor=$((loop_dev_count*loop_dev_range)) } -# Setup a loopback device for image passed as arguemnt and echo the path to loopback device used. +# Setup a loopback device for image passed as argument and echo the path to loopback device used. # args: /path/to/image_file _make_loop_dev() { local img="${1}" - mknod /dev/loop${loop_dev_cnt} b 7 ${loop_dev_cnt} &> /dev/null - losetup /dev/loop${loop_dev_cnt} "${img}" &> /dev/null - echo /dev/loop${loop_dev_cnt} + mknod /dev/loop${loop_dev_count} b 7 ${loop_dev_minor} &> /dev/null + losetup /dev/loop${loop_dev_count} "${img}" &> /dev/null + echo /dev/loop${loop_dev_count} } # args: source, mountpoint diff --git a/archiso/hooks/archiso_pxe_nbd b/archiso/hooks/archiso_pxe_nbd index f18fd4c..588e033 100644 --- a/archiso/hooks/archiso_pxe_nbd +++ b/archiso/hooks/archiso_pxe_nbd @@ -55,6 +55,8 @@ run_hook () { nbdserver=${rootserver} + [[ -z "${archiso_nbd_name}" ]] && archiso_nbd_name="archiso" + mount_handler="archiso_pxe_nbd_mount_handler" fi } @@ -74,9 +76,9 @@ archiso_pxe_nbd_mount_handler () { msg "::: Setup NBD from ${nbdserver} at /dev/nbd0" if [ "${copytoram}" = "y" ]; then - nbd-client ${nbdserver} -N archiso /dev/nbd0 + nbd-client ${nbdserver} -N ${archiso_nbd_name} /dev/nbd0 else - nbd-client ${nbdserver} -N archiso /dev/nbd0 -persist + nbd-client ${nbdserver} -N ${archiso_nbd_name} /dev/nbd0 -persist fi archisodevice=/dev/nbd0 @@ -86,5 +88,7 @@ archiso_pxe_nbd_mount_handler () { if [ "${copytoram}" = "y" ]; then msg "::: Disconnect NBD from ${nbdserver} at /dev/nbd0" nbd-client -d /dev/nbd0 + else + pidof nbd-client > /run/nbd_client.pid fi } diff --git a/archiso/install/archiso b/archiso/install/archiso index 3ac6246..514c011 100644 --- a/archiso/install/archiso +++ b/archiso/install/archiso @@ -1,4 +1,4 @@ -install () +build () { MODULES="cdrom ide-cd_mod ide-core ide-generic loop dm-mod dm-snapshot squashfs isofs $(all_modules '/kernel/fs' | grep -v "nls")" MODULES="${MODULES} $(checked_modules "/usb/host" | grep -ve "_cs" -e "sl811_hcd" -e "isp116x_hcd")" diff --git a/archiso/install/archiso_loop_mnt b/archiso/install/archiso_loop_mnt index c0d21a6..2c8d6f2 100644 --- a/archiso/install/archiso_loop_mnt +++ b/archiso/install/archiso_loop_mnt @@ -1,6 +1,6 @@ # vim: set ft=sh: -install () +build () { MODULES="" diff --git a/archiso/install/archiso_pxe_nbd b/archiso/install/archiso_pxe_nbd index 189a7b1..c8ba1a4 100644 --- a/archiso/install/archiso_pxe_nbd +++ b/archiso/install/archiso_pxe_nbd @@ -1,6 +1,6 @@ # vim: set ft=sh: -install () +build () { MODULES="nbd" MODULES="${MODULES} $(comm -2 -3 <(checked_modules "/drivers/net/" | sort) \ diff --git a/archiso/mkarchiso b/archiso/mkarchiso index 6c88474..e09ad54 100755 --- a/archiso/mkarchiso +++ b/archiso/mkarchiso @@ -147,7 +147,7 @@ _show_config () { # Install desired packages to root-image _pacman () { - _msg_info "Installing packages to '${work_dir}/root-image/'" + _msg_info "Installing packages to '${work_dir}/root-image/'..." if [[ "${quiet}" = "y" ]]; then mkarchroot -n -C "${pacman_conf}" -f "${work_dir}/root-image" $* &> /dev/null @@ -157,6 +157,7 @@ _pacman () # Cleanup find "${work_dir}" -name "*.pacnew" -name "*.pacsave" -name "*.pacorig" -delete + _msg_info "Packages installed successfully!" } # Cleanup root-image @@ -190,6 +191,10 @@ _cleanup () { if [[ -d "${work_dir}/root-image/tmp" ]]; then find "${work_dir}/root-image/tmp" -mindepth 1 -delete fi + # Delete etc/mtab if not is a symlink. + if [[ ! -L "${work_dir}/root-image/etc/mtab" ]]; then + rm -f "${work_dir}/root-image/etc/mtab" + fi } # Makes a SquashFS filesystem image of file/directory passes as argument with desired compression. @@ -249,6 +254,7 @@ _mkfs () { fi _msg_info "Creating ${_fs_type} image of ${_fs_size} MiB" + rm -f "${_fs_img}" dd of="${_fs_img}" count=0 bs=1M seek=${_fs_size} &> /dev/null local _qflag="" if [[ ${quiet} == "y" ]]; then @@ -374,8 +380,8 @@ command_create () { _msg_info "These packages are already installed, skipping." else mkdir -p "${work_dir}/root-image/" - : > "${work_dir}/create.${_pkg_list_hash}" _pacman "${pkg_list}" + : > "${work_dir}/create.${_pkg_list_hash}" fi } |