Optimized chroot procedures

This commit is contained in:
2020-05-21 19:22:14 +02:00
parent 7fb733a0a8
commit 49f5bddbea
4 changed files with 32 additions and 32 deletions

View File

@@ -50,7 +50,7 @@ mount_partitions(){
error
}
mount_binds(){
mount_chroot_binds(){
info "Mount chroot environments..." &&
chroot_sys_mount_path="$root_mount_path""sys/" &&
chroot_proc_mount_path="$root_mount_path""proc/" &&
@@ -63,3 +63,15 @@ mount_binds(){
mount --bind /dev/pts "$chroot_dev_pts_mount_path" ||
error
}
copy_qemu(){
info "Copy qemu binary..." &&
cp -v /usr/bin/qemu-arm-static "$root_mount_path""usr/bin/" ||
error
}
copy_resolve_conf(){
info "Copy resolve.conf..." &&
cp -v /etc/resolv.conf "$root_mount_path""etc/" ||
warning "Failed. Propably there is no internet connection available."
}

View File

@@ -16,32 +16,16 @@ set_partition_paths
mount_partitions
mount_binds
mount_chroot_binds
info "ld.so.preload fix" &&
sed -i 's/^/#CHROOT /g' "$root_mount_path""etc/ld.so.preload" ||
warning "Failed."
copy_qemu
info "Copy qemu binary..." &&
cp -v /usr/bin/qemu-arm-static "$root_mount_path""usr/bin/" ||
error
copy_resolve_conf
info "Copy resolve.conf..."
cp -v /etc/resolv.conf "$root_mount_path""etc/" &&
warning "Failed. Propably there is no internet connection available."
info "You will be transferred to the bash shell now." &&
info "Issue 'exit' when you are done." &&
info "Issue 'su pi' if you need to work as the user pi." &&
info "chroot to raspbian" &&
info "Bash shell starts..." &&
chroot "$root_mount_path" /bin/bash ||
error
info "Clean up" &&
info "revert ld.so.preload fix" &&
sed -i 's/^#CHROOT //g' "$root_mount_path""etc/ld.so.preload" ||
warning "Failed."
info "unmount everything" &&
umount "$root_mount_path"/{dev/pts,dev,sys,proc,boot,} ||
error

View File

@@ -10,7 +10,6 @@ info "Setupscript for images started..."
info "Define functions..."
destructor(){
info "Cleaning up..."
sed -i 's/^#CHROOT //g' "$root_mount_path""etc/ld.so.preload" || warning "sed failed."
umount -v "$chroot_dev_pts_mount_path" || warning "Umounting $chroot_dev_pts_mount_path failed!"
umount -v "$chroot_dev_mount_path" || warning "Umounting $chroot_dev_mount_path failed!"
umount -v "$chroot_proc_mount_path" || warning "Umounting $chroot_proc_mount_path failed!"
@@ -110,9 +109,12 @@ case "$os" in
"1")
imagename="ArchLinuxARM-rpi-latest.tar.gz"
;;
"2" | "3")
"2")
imagename="ArchLinuxARM-rpi-2-latest.tar.gz"
;;
"3")
imagename="ArchLinuxARM-rpi-3-latest.tar.gz"
;;
"4")
imagename="ArchLinuxARM-rpi-4-latest.tar.gz"
;;
@@ -314,12 +316,14 @@ if [ "$copy_ssh_key" == "y" ]
else
info "Skipped SSH-key copying.."
fi
info "Start chroot procedures..."
mount_binds
mount_chroot_binds
sed -i 's/^/#CHROOT /g' "$root_mount_path""etc/ld.so.preload" || warning "sed failed."
cp -v /usr/bin/qemu-arm-static "$root_mount_path""/usr/bin/" || error "Copy qemu-arm-static failed. The following packages are neccessary: qemu qemu-user-static binfmt-support."
copy_qemu
copy_resolve_conf
question "Should the image password of the standart user \"$target_username\" be changed?(y/N)" && read -r change_password
if [ "$change_password" == "y" ]