Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Arch Linux
archiso
Commits
90cfe3ce
Commit
90cfe3ce
authored
Aug 12, 2011
by
Gerardo Exequiel Pozzi
Browse files
[archiso] Add checksum= boot param
Signed-off-by:
Gerardo Exequiel Pozzi
<
vmlinuz386@yahoo.com.ar
>
parent
12e9d324
Changes
5
Hide whitespace changes
Inline
Side-by-side
README
View file @
90cfe3ce
...
...
@@ -31,6 +31,10 @@ INDEX
* copytoram= If set to "y" or just "copytoram" without arguments,
all SquashFS are copied to "RAM".
Default: (unset)
* checksum= If set to "y" or just "checksum" without arguments,
performs a self-test of all files inside ${install_dir},
and continue booting if ok.
Default: (unset)
* cowspace_size= Set the size of tmpfs /cowspace. This space is used for
Copy-On-Write files of dm-snapshot.
(directory not visible outside initramfs)
...
...
archiso/hooks/archiso
View file @
90cfe3ce
...
...
@@ -77,6 +77,16 @@ _mnt_sfs() {
fi
}
_verify_checksum
()
{
local
_status
cd
"/bootmnt/
${
archisobasedir
}
"
md5sum
-c
checksum.md5
>
/checksum.log 2>&1
_status
=
$?
cd
"
${
OLDPWD
}
"
return
${
_status
}
}
run_hook
()
{
[[
-z
"
${
arch
}
"
]]
&&
arch
=
"
$(
uname
-m
)
"
[[
-z
"
${
cowspace_size
}
"
]]
&&
cowspace_size
=
"75%"
...
...
@@ -135,6 +145,22 @@ archiso_mount_handler() {
launch_interactive_shell
fi
if
[[
"
${
checksum
}
"
==
"y"
]]
;
then
if
[[
-f
"/bootmnt/
${
archisobasedir
}
/checksum.md5"
]]
;
then
msg
-n
":: Self-test requested, please wait..."
if
_verify_checksum
;
then
msg
"done. Checksum is OK, continue booting."
else
echo
"ERROR: one or more files are corrupted"
echo
"see /checksum.log for details"
launch_interactive_shell
fi
else
echo
"ERROR: checksum=y option specified but checksum.md5 not found"
launch_interactive_shell
fi
fi
if
[[
"
${
copytoram
}
"
==
"y"
]]
;
then
msg
-n
":: Mounting /copytoram (tmpfs) filesystem, size=
${
copytoram_size
}
..."
mount
-t
tmpfs
-o
"size=
${
copytoram_size
}
"
,mode
=
0755 copytoram /copytoram
...
...
archiso/mkarchiso
View file @
90cfe3ce
...
...
@@ -112,6 +112,8 @@ _usage ()
echo
" includes all specified packages"
echo
" prepare <dir>"
echo
" build all images"
echo
" checksum <dir>"
echo
" make a checksum.md5 for self-test"
echo
" iso <dir> <image name>"
echo
" build an iso image from the working dir"
exit
${
1
}
...
...
@@ -134,6 +136,8 @@ _show_config () {
;;
prepare
)
;;
checksum
)
;;
iso
)
_msg_info
" Image name:
${
img_name
}
"
_msg_info
" Disk label:
${
iso_label
}
"
...
...
@@ -286,6 +290,16 @@ _mkfs () {
_umount_fs
"
${
work_dir
}
/mnt/
${
_src
}
"
}
command_checksum
()
{
_show_config checksum
_msg_info
"Creating checksum file for self-test"
cd
"
${
work_dir
}
/iso/
${
install_dir
}
"
find
-type
f
!
-name
checksum.md5
-print0
| xargs
-0
md5sum
>
checksum.md5
cd
${
OLDPWD
}
_msg_info
"Done!"
}
# Create an ISO9660 filesystem from "iso" directory.
command_iso
()
{
if
[[
!
-f
"
${
work_dir
}
/iso/isolinux/isolinux.bin"
]]
;
then
...
...
@@ -428,6 +442,9 @@ case "${command_name}" in
prepare
)
command_prepare
;;
checksum
)
command_checksum
;;
iso
)
if
[[
$#
-lt
3
]]
;
then
_msg_error
"No image specified"
0
...
...
configs/baseline/build.sh
View file @
90cfe3ce
...
...
@@ -78,6 +78,7 @@ make_prepare() {
# Build ISO
make_iso
()
{
mkarchiso
${
verbose
}
checksum
"
${
work_dir
}
"
mkarchiso
${
verbose
}
-D
"
${
install_dir
}
"
-L
"
${
iso_label
}
"
iso
"
${
work_dir
}
"
"
${
name
}
-
${
version
}
-
${
arch
}
.iso"
}
...
...
configs/releng/build.sh
View file @
90cfe3ce
...
...
@@ -163,6 +163,7 @@ make_prepare() {
# args: $1 (core | netinstall)
make_iso
()
{
local
_iso_type
=
${
1
}
mkarchiso
${
verbose
}
checksum
"
${
work_dir
}
"
mkarchiso
${
verbose
}
-D
"
${
install_dir
}
"
-L
"
${
iso_label
}
"
iso
"
${
work_dir
}
"
"
${
name
}
-
${
version
}
-
${
_iso_type
}
-
${
arch
}
.iso"
}
...
...
@@ -206,6 +207,7 @@ make_dual() {
sed
"s|%ARCHISO_LABEL%|
${
iso_label
}
|g;
s|%INSTALL_DIR%|
${
install_dir
}
|g"
${
_cfg
}
>
${
work_dir
}
/dual/iso/
${
install_dir
}
/boot/syslinux/
${
_cfg
##*/
}
done
mkarchiso
${
verbose
}
checksum
"
${
work_dir
}
/dual"
mkarchiso
${
verbose
}
-D
"
${
install_dir
}
"
-L
"
${
iso_label
}
"
iso
"
${
work_dir
}
/dual"
"
${
name
}
-
${
version
}
-
${
_iso_type
}
-dual.iso"
:
>
${
work_dir
}
/dual/build.
${
FUNCNAME
}
_
${
_iso_type
}
fi
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment