summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>2014-06-28 00:35:50 -0300
committerGerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>2014-06-28 00:35:50 -0300
commit36459f3acc217ff6a0b4ad1b6049d68a8da413e2 (patch)
treed078f5d6053dc40760eb72e3f5fe1c1820e0757c
parent9131f83404a5e2b45db9d79711e052ff9eba9c56 (diff)
downloadarchiso32-36459f3acc217ff6a0b4ad1b6049d68a8da413e2.tar.xz
[archiso] Drop aitab support
Always create one filesystem of a fixed size (32G), format (ext4) and know name "airootfs". Simplify logic a lot.
-rw-r--r--archiso/initcpio/hooks/archiso29
-rw-r--r--archiso/initcpio/hooks/archiso_pxe_http16
-rwxr-xr-xarchiso/mkarchiso48
-rw-r--r--configs/baseline/aitab2
-rwxr-xr-xconfigs/baseline/build.sh8
-rw-r--r--configs/releng/aitab3
-rwxr-xr-xconfigs/releng/build.sh10
-rw-r--r--docs/README.bootparams6
-rw-r--r--docs/README.build47
9 files changed, 21 insertions, 148 deletions
diff --git a/archiso/initcpio/hooks/archiso b/archiso/initcpio/hooks/archiso
index 66a6273..d6ca443 100644
--- a/archiso/initcpio/hooks/archiso
+++ b/archiso/initcpio/hooks/archiso
@@ -101,7 +101,7 @@ _verify_checksum() {
}
run_hook() {
- [[ -z "${arch}" ]] && arch="$(uname -m)"
+ arch="$(uname -m)"
[[ -z "${cowspace_size}" ]] && cowspace_size="75%"
[[ -z "${copytoram_size}" ]] && copytoram_size="75%"
[[ -z "${archisobasedir}" ]] && archisobasedir="arch"
@@ -113,12 +113,6 @@ run_hook() {
cowfile_size=${cowfile_size/%}
fi
- if [[ -z "${aitab}" ]]; then
- aitab="/run/archiso/bootmnt/${archisobasedir}/aitab"
- else
- aitab="/run/archiso/bootmnt/${archisobasedir}/${aitab}"
- fi
-
if [[ -n "${cow_label}" ]]; then
cow_device="/dev/disk/by-label/${cow_label}"
[[ -z "${cow_persistent}" ]] && cow_persistent="P"
@@ -147,14 +141,6 @@ archiso_mount_handler() {
fi
fi
-
- if [[ ! -f "${aitab}" ]]; then
- echo "ERROR: '${aitab}' file does not exist."
- echo " Falling back to interactive prompt"
- echo " You can try to fix the problem manually, log out when you are finished"
- launch_interactive_shell
- fi
-
if [[ "${checksum}" == "y" ]]; then
if [[ -f "/run/archiso/bootmnt/${archisobasedir}/checksum.${arch}.md5" ]]; then
msg -n ":: Self-test requested, please wait..."
@@ -188,17 +174,8 @@ archiso_mount_handler() {
fi
mkdir -p "/run/archiso/cowspace/${cow_directory}"
- local aitab_img aitab_mnt aitab_arch aitab_sfs_comp aitab_fs_type aitab_fs_size
- while read aitab_img aitab_mnt aitab_arch aitab_sfs_comp aitab_fs_type aitab_fs_size; do
- [[ "${aitab_img#\#}" != "${aitab_img}" ]] && continue
- [[ "${aitab_arch}" != "any" && "${aitab_arch}" != "${arch}" ]] && continue
- if [[ "${aitab_fs_type}" != "none" ]]; then
- _mnt_sfs "/run/archiso/bootmnt/${archisobasedir}/${aitab_arch}/${aitab_img}.fs.sfs" "/run/archiso/sfs/${aitab_img}"
- _mnt_fs "/run/archiso/sfs/${aitab_img}/${aitab_img}.fs" "${newroot}" "${aitab_mnt}"
- else
- _mnt_sfs "/run/archiso/bootmnt/${archisobasedir}/${aitab_arch}/${aitab_img}.sfs" "${newroot}${aitab_mnt}"
- fi
- done < "${aitab}"
+ _mnt_sfs "/run/archiso/bootmnt/${archisobasedir}/${arch}/airootfs.fs.sfs" "/run/archiso/sfs/airootfs"
+ _mnt_fs "/run/archiso/sfs/airootfs/airootfs.fs" "${newroot}" "/"
if [[ "${copytoram}" == "y" ]]; then
umount /run/archiso/bootmnt
diff --git a/archiso/initcpio/hooks/archiso_pxe_http b/archiso/initcpio/hooks/archiso_pxe_http
index 32e8ab0..001b486 100644
--- a/archiso/initcpio/hooks/archiso_pxe_http
+++ b/archiso/initcpio/hooks/archiso_pxe_http
@@ -34,21 +34,7 @@ archiso_pxe_http_mount_handler () {
mkdir -p "/run/archiso/httpspace"
mount -t tmpfs -o size="${archiso_http_spc}",mode=0755 httpspace "/run/archiso/httpspace"
- local _aitab_url="${archiso_http_srv}${aitab#/run/archiso/bootmnt/}"
- local _aitab_file="/run/archiso/httpspace/${aitab#/run/archiso/bootmnt/}"
-
- _curl_get "${_aitab_url}" "/"
-
- local aitab_img aitab_mnt aitab_arch aitab_sfs_comp aitab_fs_type aitab_fs_size
- while read aitab_img aitab_mnt aitab_arch aitab_sfs_comp aitab_fs_type aitab_fs_size; do
- [[ "${aitab_img#\#}" != "${aitab_img}" ]] && continue
- [[ "${aitab_arch}" != "any" && "${aitab_arch}" != "${arch}" ]] && continue
- if [[ "${aitab_fs_type}" != "none" ]]; then
- _curl_get "${archiso_http_srv}${archisobasedir}/${aitab_arch}/${aitab_img}.fs.sfs" "/${aitab_arch}"
- else
- _curl_get "${archiso_http_srv}${archisobasedir}/${aitab_arch}/${aitab_img}.sfs" "/${aitab_arch}"
- fi
- done < "${_aitab_file}"
+ _curl_get "${archiso_http_srv}${archisobasedir}/${arch}/airootfs.fs.sfs" "/${arch}"
if [[ "${checksum}" == "y" ]]; then
_curl_get "${archiso_http_srv}${archisobasedir}/checksum.${arch}.md5" "/"
diff --git a/archiso/mkarchiso b/archiso/mkarchiso
index 115d5e0..8325608 100755
--- a/archiso/mkarchiso
+++ b/archiso/mkarchiso
@@ -304,11 +304,7 @@ command_checksum () {
_msg_info "Creating checksum file for self-test (${_chk_arch})..."
cd "${work_dir}/iso/${install_dir}"
if [[ -d "${_chk_arch}" ]]; then
- md5sum aitab > checksum.${_chk_arch}.md5
- find ${_chk_arch} -type f -print0 | xargs -0 md5sum >> checksum.${_chk_arch}.md5
- if [[ -d "any" ]]; then
- find any -type f -print0 | xargs -0 md5sum >> checksum.${_chk_arch}.md5
- fi
+ find ${_chk_arch} -type f -print0 | xargs -0 md5sum > checksum.${_chk_arch}.md5
fi
cd ${OLDPWD}
_msg_info "Done!"
@@ -375,39 +371,23 @@ command_iso () {
fi
}
-# Parse aitab and create each filesystem specified on that, and push it in "iso" directory.
+# create airootfs.fs.sfs filesystem, and push it in "iso" directory.
command_prepare () {
- if [[ ! -f "${work_dir}/iso/${install_dir}/aitab" ]]; then
- _msg_error "The file '${work_dir}/iso/${install_dir}/aitab' does not exist." 1
- fi
_show_config prepare
_cleanup
- local _aitab_img _aitab_mnt _aitab_arch _aitab_sfs_comp _aitab_fs_type _aitab_fs_size
- while read _aitab_img _aitab_mnt _aitab_arch _aitab_sfs_comp _aitab_fs_type _aitab_fs_size ; do
- if [[ ${_aitab_img} =~ ^# ]]; then
- continue
- fi
- if [[ "${_aitab_arch}" != "any" && "${_aitab_arch}" != "${arch}" ]]; then
- continue
- fi
- local _src="${work_dir}/${_aitab_img}"
- local _dst="${work_dir}/iso/${install_dir}/${_aitab_arch}"
- mkdir -p "${_dst}"
- if [[ ${_aitab_fs_type} != "none" ]]; then
- if _is_directory_changed "${_src}" "${_dst}/${_aitab_img}.fs.sfs"; then
- _mkfs ${_aitab_img}
- _mksfs ${_aitab_img}.fs
- mv "${_src}.fs.sfs" "${_dst}"
- rm "${_src}.fs"
- fi
- else
- if _is_directory_changed "${_src}" "${_dst}/${_aitab_img}.sfs"; then
- _mksfs ${_aitab_img}
- mv "${work_dir}/${_aitab_img}.sfs" "${_dst}"
- fi
- fi
- done < "${work_dir}/iso/${install_dir}/aitab"
+
+ local _src="${work_dir}/airootfs"
+ local _dst="${work_dir}/iso/${install_dir}/${arch}"
+
+ mkdir -p "${_dst}"
+
+ if _is_directory_changed "${_src}" "${_dst}/airootfs.fs.sfs"; then
+ _mkfs airootfs
+ _mksfs airootfs.fs
+ mv "${_src}.fs.sfs" "${_dst}"
+ rm "${_src}.fs"
+ fi
}
# Install packages on airootfs.
diff --git a/configs/baseline/aitab b/configs/baseline/aitab
deleted file mode 100644
index 9134d60..0000000
--- a/configs/baseline/aitab
+++ /dev/null
@@ -1,2 +0,0 @@
-# <img> <mnt> <arch> <sfs_comp> <fs_type> <fs_size>
-airootfs / %ARCH% gzip ext4 50%
diff --git a/configs/baseline/build.sh b/configs/baseline/build.sh
index 19bc0c4..46033cb 100755
--- a/configs/baseline/build.sh
+++ b/configs/baseline/build.sh
@@ -60,12 +60,7 @@ make_isolinux() {
cp ${work_dir}/airootfs/usr/lib/syslinux/bios/ldlinux.c32 ${work_dir}/iso/isolinux/
}
-# Process aitab
-make_aitab() {
- sed "s|%ARCH%|${arch}|g" ${script_path}/aitab > ${work_dir}/iso/${install_dir}/aitab
-}
-
-# Build all filesystem images specified in aitab (.fs.sfs .sfs)
+# Build airootfs filesystem image
make_prepare() {
mkarchiso -v -w "${work_dir}" -D "${install_dir}" prepare
}
@@ -81,6 +76,5 @@ run_once make_setup_mkinitcpio
run_once make_boot
run_once make_syslinux
run_once make_isolinux
-run_once make_aitab
run_once make_prepare
run_once make_iso
diff --git a/configs/releng/aitab b/configs/releng/aitab
deleted file mode 100644
index f9b482d..0000000
--- a/configs/releng/aitab
+++ /dev/null
@@ -1,3 +0,0 @@
-# <img> <mnt> <arch> <sfs_comp> <fs_type> <fs_size>
-airootfs / i686 xz ext4 50%
-airootfs / x86_64 xz ext4 50%
diff --git a/configs/releng/build.sh b/configs/releng/build.sh
index 2438175..f0b6f42 100755
--- a/configs/releng/build.sh
+++ b/configs/releng/build.sh
@@ -182,13 +182,7 @@ make_efiboot() {
umount ${work_dir}/efiboot
}
-# Copy aitab
-make_aitab() {
- mkdir -p ${work_dir}/iso/${install_dir}
- cp ${script_path}/aitab ${work_dir}/iso/${install_dir}/aitab
-}
-
-# Build all filesystem images specified in aitab (.fs.sfs .sfs)
+# Build airootfs filesystem image
make_prepare() {
cp -a -l -f ${work_dir}/${arch}/airootfs ${work_dir}
setarch ${arch} mkarchiso ${verbose} -w "${work_dir}" -D "${install_dir}" pkglist
@@ -253,8 +247,6 @@ run_once make_isolinux
run_once make_efi
run_once make_efiboot
-run_once make_aitab
-
for arch in i686 x86_64; do
run_once make_prepare
done
diff --git a/docs/README.bootparams b/docs/README.bootparams
index 755cc0d..caee0c2 100644
--- a/docs/README.bootparams
+++ b/docs/README.bootparams
@@ -23,8 +23,6 @@ INDEX
Default: "/dev/disk/by-label/${archisolabel}"
* archisobasedir= Set the base directory where all files reside.
Default: "arch"
-* aitab= Set the path for "aitab" file.
- Default: ${archisobasedir}/aitab
* copytoram= If set to "y" or just "copytoram" without arguments,
all SquashFS are copied to "RAM".
Default: (unset)
@@ -59,10 +57,6 @@ INDEX
Default: "75%"
* dm_snap_prefix= Set a prefix for device-mapper snapshot node names.
Default: "arch"
-* arch= Force an architecture type (i686 | x86_64).
- Do not set it for normal operations.
- Useful for running a 64 bit kernel / 32 bit userspace.
- Default: (architecture of running kernel)
** hooks/archiso_pxe_common
diff --git a/docs/README.build b/docs/README.build
index 1f2d703..1c047ea 100644
--- a/docs/README.build
+++ b/docs/README.build
@@ -2,9 +2,6 @@ INDEX
-----
* Build requirements
-* Image types generated by mkarchiso.
-* File format for aitab.
-* Why the /isolinux and /arch/boot/syslinux directories?
* Building the most basic Arch Linux live media. (configs/baseline)
* Building official Arch Linux live media. (configs/releng)
@@ -39,52 +36,10 @@ INDEX
+ (none)
-*** Image types generated by mkarchiso.
-
-* image-name.sfs SquashFS image with all files directly on it.
- [read-only, no dm-snapshot is used]
-* image-name.fs.sfs SquashFS with only one file inside (image-name.fs),
- which is an image of some type of filesystem
- (ext4, ext3, ext2, xfs, btrfs), all files reside on it.
- [read-write, via COW image with dm-snapshot]
-
-
-*** File format for aitab.
-
-The aitab file holds information about the filesystems images that must be
-created by mkarchiso and mounted at initramfs stage from the archiso hook.
-It consists of some fields which define the behaviour of images.
-
-# <img> <mnt> <arch> <sfs_comp> <fs_type> <fs_size>
-
-<img> Image name without extension (.fs .fs.sfs .sfs).
-<mnt> Mount point.
-<arch> Architecture { i686 | x86_64 | any }.
-<sfs_comp> SquashFS compression type { gzip | lzo | xz }.
-<fs_type> Set the filesystem type of the image
- { ext4 | ext3 | ext2 | xfs | btrfs }.
- A special value of "none" denotes no usage of a filesystem.
- In that case all files are pushed directly to SquashFS filesystem.
-<fs_size> An absolute value of file system image size in MiB.
- (example: 100, 1000, 4096, etc)
- A relative value of file system free space [in percent].
- {1%..99%} (example 50%, 10%, 7%).
- This is an estimation, and calculated in a simple way.
- Space used + 10% (estimated for metadata overhead) + desired %
-
-
-*** Why the /isolinux and /arch/boot/syslinux directories?
-
-The /isolinux directory holds files needed for the ISOLINUX boot loader
-module of SYSLINUX. ISOLINUX can not find config files on
-/arch/boot/syslinux, like other boot loaders modules (SYSLINUX, PXELINUX).
-
-
-
*** Building the most basic Arch Linux live media. (configs/baseline)
* Install needed packages.
- # pacman -S git make arch-install-scripts squashfs-tools libisoburn rsync --needed
+ # pacman -S git make arch-install-scripts squashfs-tools libisoburn --needed
* Install archiso.
# git clone git://projects.archlinux.org/archiso.git