init iso2usb
This commit is contained in:
commit
a2fb7aec1a
|
@ -0,0 +1,13 @@
|
||||||
|
# iso2usb
|
||||||
|
|
||||||
|
Script for writing an ISO image to a USB device
|
||||||
|
|
||||||
|
```
|
||||||
|
sudo ./iso2usb.sh <device> <path-to-iso>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Example
|
||||||
|
|
||||||
|
```
|
||||||
|
sudo ./iso2usb.sh /dev/sde ./image.iso
|
||||||
|
```
|
|
@ -0,0 +1,87 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# title :iso2usb.sh
|
||||||
|
# description :Script for writing an ISO image to a USB device
|
||||||
|
# author :Alexander Zhirov
|
||||||
|
# date :20240122
|
||||||
|
# version :0.1.0
|
||||||
|
# usage :bash iso2usb.sh
|
||||||
|
#===============================================================================
|
||||||
|
|
||||||
|
set -e
|
||||||
|
# set -x
|
||||||
|
|
||||||
|
PARTED=$(which parted)
|
||||||
|
|
||||||
|
if [ ! -x ${PARTED} ]
|
||||||
|
then
|
||||||
|
echo "The parted utility is missing" && exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
TMP_USB_PATH="/tmp/usb_$(date +"%Y%m%d-%H%M%S")"
|
||||||
|
TMP_ISO_PATH="/tmp/iso_$(date +"%Y%m%d-%H%M%S")"
|
||||||
|
|
||||||
|
format_usb_device() {
|
||||||
|
local USB_DEVICE="${1}"
|
||||||
|
|
||||||
|
parted -s ${USB_DEVICE} mklabel msdos
|
||||||
|
parted -s ${USB_DEVICE} mkpart primary fat32 0% 100%
|
||||||
|
parted -s ${USB_DEVICE} set 1 boot on
|
||||||
|
mkfs -Vt fat ${USB_DEVICE}1
|
||||||
|
}
|
||||||
|
|
||||||
|
mount_usb_device() {
|
||||||
|
local USB_DEVICE="${1}1"
|
||||||
|
mkdir -v ${TMP_USB_PATH}
|
||||||
|
mount -v ${USB_DEVICE} ${TMP_USB_PATH}
|
||||||
|
}
|
||||||
|
|
||||||
|
umount_usb_device() {
|
||||||
|
local USB_DEVICE="${1}1"
|
||||||
|
umount -v ${USB_DEVICE}
|
||||||
|
rm -rv ${TMP_USB_PATH}
|
||||||
|
}
|
||||||
|
|
||||||
|
mount_iso_image() {
|
||||||
|
local ISO_IMAGE="${1}"
|
||||||
|
mkdir -v ${TMP_ISO_PATH}
|
||||||
|
mount -o loop,ro ${ISO_IMAGE} ${TMP_ISO_PATH}
|
||||||
|
}
|
||||||
|
|
||||||
|
umount_iso_image() {
|
||||||
|
umount -v ${TMP_ISO_PATH}
|
||||||
|
rm -rv ${TMP_ISO_PATH}
|
||||||
|
}
|
||||||
|
|
||||||
|
copy_iso_to_usb() {
|
||||||
|
cp -rpv ${TMP_ISO_PATH}/* ${TMP_USB_PATH}
|
||||||
|
}
|
||||||
|
|
||||||
|
main () {
|
||||||
|
local USB_DEVICE="${1}"
|
||||||
|
local ISO_IMAGE="${2}"
|
||||||
|
|
||||||
|
[ -z "${USB_DEVICE}" ] && echo "USB device is not specified" && exit 1
|
||||||
|
[ -z "${ISO_IMAGE}" ] && echo "ISO image is not specified" && exit 1
|
||||||
|
|
||||||
|
local PARTEDS=$(ls ${USB_DEVICE}* | grep -o "${USB_DEVICE}[0-9]")
|
||||||
|
|
||||||
|
for PARTED in ${PARTEDS[@]}
|
||||||
|
do
|
||||||
|
if [ ! -z "$(mount | grep "${PARTED}" )" ]
|
||||||
|
then
|
||||||
|
umount "${PARTED}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
format_usb_device ${USB_DEVICE}
|
||||||
|
|
||||||
|
mount_usb_device ${USB_DEVICE}
|
||||||
|
mount_iso_image ${ISO_IMAGE}
|
||||||
|
|
||||||
|
copy_iso_to_usb
|
||||||
|
|
||||||
|
umount_iso_image
|
||||||
|
umount_usb_device ${USB_DEVICE}
|
||||||
|
}
|
||||||
|
|
||||||
|
main "${@}"
|
Loading…
Reference in New Issue