66 lines
1.5 KiB
Bash
Executable File
66 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
if [ $# -ne 1 ]; then
|
||
echo "Использование: $0 /dev/sdX"
|
||
echo "Где /dev/sdX - ваша флешка"
|
||
exit 1
|
||
fi
|
||
|
||
DEVICE=$1
|
||
|
||
if [ ! -b "$DEVICE" ]; then
|
||
echo "[-] Устройство $DEVICE не найдено"
|
||
exit 1
|
||
fi
|
||
|
||
echo "[*] Создаю автономную загрузочную флешку на $DEVICE"
|
||
echo "[!] ВСЕ ДАННЫЕ БУДУТ УДАЛЕНЫ!"
|
||
read -p "Продолжить? (y/N): " -n 1 -r
|
||
echo
|
||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
||
exit 1
|
||
fi
|
||
|
||
echo "[*] Собираю образ ОС..."
|
||
make clean
|
||
make os.bin
|
||
|
||
if [ ! -f "os.bin" ]; then
|
||
echo "[-] Ошибка сборки os.bin"
|
||
exit 1
|
||
fi
|
||
|
||
echo "[*] Создаю разделы на флешке..."
|
||
sudo umount ${DEVICE}* 2>/dev/null || true
|
||
|
||
sudo fdisk $DEVICE << EOF
|
||
o
|
||
n
|
||
p
|
||
1
|
||
|
||
+10M
|
||
n
|
||
p
|
||
2
|
||
|
||
|
||
a
|
||
1
|
||
w
|
||
EOF
|
||
|
||
echo "[*] Записываю загрузчик..."
|
||
sudo dd if=os.bin of=${DEVICE}1 bs=512 status=progress
|
||
|
||
echo "[*] Инициализирую раздел данных..."
|
||
sudo dd if=/dev/zero of=${DEVICE}2 bs=1M count=1 2>/dev/null
|
||
echo "[*] RAW раздел для дампа готов"
|
||
|
||
echo "[*] Синхронизирую данные..."
|
||
sudo sync
|
||
|
||
echo "[+] Автономная загрузочная флешка готова!"
|
||
echo "[*] Загрузочный раздел: ${DEVICE}1"
|
||
echo "[*] Раздел для данных: ${DEVICE}2"
|
||
echo "[*] Флешка загрузится сама и сохранит дамп на второй раздел" |