Сайт | Скачать | Видео | Wiki

Автор Тема: Установщик для флэшки live дистрибутива linux с ventoy.  (Прочитано 1748 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн totiks2012

  • Ветеран
  • *****
  • Сообщений: 885
  • Репутация: +24/-0
  • Автор темы
  ;D есть код для 2-х флэшек, как и говорил нужен peco
первый скрипт
Код
#!/bin/bash
#set -x
devices="$(lsblk -l -o NAME,TYPE | awk '$2 == "disk" && !/^(sda|zram0)/' | awk -F' ' '{print $1}' | peco)"
echo "Устройство /dev/""$devices"
echo "$devices" >$HOME/.config/device.txt
PART="$devices"

if [[ "$(cat /sys/block/$devices/events)" == "media_change" ]]; then
    echo "Флешка вставлена."
    # здесь можете выполнить дополнительные действия
   
else
    echo "Флешка не вставлена."
    exit
fi

read -p " Для продолжения жмем ВВОД"
cd "$PWD"/ventoy-1.0.97/
sudo ./Ventoy2Disk.sh -i -r 4000 /dev/"$PART"
printf 'n\np\n3\n\n\nw\n' | sudo fdisk /dev/"$PART"
echo "СЕЙЧАС ВАШ КОМПЬЮТЕР БУДЕТ ПЕРЕЗАГРУЖЕН"
echo "После перезагрузки СКРИПТ ЕДИНОРАЗОВО продолжит свою работу"
read -p "Для продолжения нажжмите ВВОД"

    sleep 3
   
    # Создание desktop-файла для автозапуска второго скрипта
    cat > ~/.config/autostart/ventoy_copy.desktop << EOF
[Desktop Entry]
Type=Application
Exec=xfce4-terminal --window -e "/home/live/ol/copy_files.sh"
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Terminal=true
Name=Ventoy Copy Files
Comment=Copy files to Ventoy partition after reboot
EOF
sudo reboot
-----------------------------
второй скрипт
Код
#!/bin/bash
devices="$(cat $HOME/.config/device.txt)"
#devices=$(lsblk -l -o NAME,TYPE | awk '$2 == "disk" && !/^(sda|zram0|fd0)/ {print $1; exit}')
#devices="$(lsblk -l -o NAME,TYPE | awk '$2 == "disk" && !/^(sda|zram0)/' | awk -F' ' '{print $1}' | peco)"
echo "Устройство /dev/""$devices"
PART="$devices"

if [[ "$(cat /sys/block/$devices/events)" == "media_change" ]]; then
    echo "Флешка вставлена."   
else
    echo "Флешка не вставлена."
    exit
fi
echo "Будет создан новый раздел" "/dev/""$PART"3
read -p "Для продолжения жмем ВВОД"

sudo mkfs.ext4 /dev/"$PART"3

# Создание временного каталога для монтирования
sudo mkdir /mnt/temp

# Монтирование раздела
sudo mount /dev/"$PART"3 /mnt/temp

echo "Копирую файлы дистрибутива на флэшку"
echo "..."

sudo cp -r /home/live/ol/oldwave_7_1 /mnt/temp



# Отмонтирование раздела
sudo umount /mnt/temp

# Удаление временного каталога
sudo rmdir /mnt/temp
echo "Каталог с дистрибутивом oldwave скопирован"
sudo mkdir /mnt/fat16
sudo mount -t vfat /dev/"$PART"2 /mnt/fat16
# Переменная с содержимым для вставки в конец файла grub.cfg
new_config="
menuentry \"---Old-Wave-linux_7---\" {
    set d=oldwave_7_1
    export d
    search --set=root --no-floppy --file /\${d}/boot/met9
    linux /\${d}/boot/vmlinuz dir=\${d} linux.flags=perch quiet enable_services=ssh,firewalld
    initrd /\${d}/boot/initrfs.img
}"

# Добавляем содержимое в конец файла grub.cfg
echo "$new_config" | sudo tee -a /mnt/fat16/grub/grub.cfg > /dev/null

# Удаление desktop-файла из ~/.config/autostart
rm ~/.config/autostart/ventoy_copy.desktop
echo "ВСЕ НЕОБХОДИМЫЕ ОПЕРАЦИИ ВЫПОЛНЕНЫ"
echo "ВЫ СТАЛИ ОБЛАДАТЕЛЕМ live USB респином DEBIAN12---Oldwave linux"
sleep 6
------------------------
протестировал и всё работает .
upd: В некоторых live дистрибутивах(pupX64, Vanila Dpup)
  peco из репы сломан, в таких случаях надлежит его брать
с github.  https://github.com/peco/peco/releases

upd2: подержу последний код пару другую дней тут если не всплывет ничего плохого, скрипт перенесу в шапку . Спасибо вам всем , от всей души за участие, ёпрст прикольная штука получилась!
« Последнее редактирование: 28 Февраль 2024, 21:06:06 от totiks2012 »

Оффлайн imp

  • cat /dev/ass > /dev/head
  • Ветеран
  • *****
  • Сообщений: 1722
  • Репутация: +49/-1
  • /dev/hands < /dev/ass
Вот, как препод по матану говорил - чего вы цепляетесь за эти буквы? Хоть кружочки-квадратики-треугольники всместо них рисуйте... Так и вы прицепились к sda...
А вдруг у меня бездисковая станция?
Компьютер имеет то преимущество перед мозгом, что им пользуются.

Оффлайн totiks2012

  • Ветеран
  • *****
  • Сообщений: 885
  • Репутация: +24/-0
  • Автор темы
А вдруг у меня бездисковая станция?
а при бездисковой что флэшка может быть sda? Я если чего не ерошничаю, просто даже не предпологал такого сценария. Я неделю назад , очень по тупому удалил первый раздел sda на котором был Sparqy(его не жалко я в нём не жил, жалко было загрузчика к которому были прицеплены все мои live, и знал и умел в Ventoy но комп был новый а мне не терпелось когда устанавливал... но случилось к лучщему теперь все live загружаю из Ventoy ) , и это скорее защита от меня дурака :)  , в зеркало старался после этого не смотреть, второй раз этот взгляд полный укоризны и самоиронии я не переживу... Ну кому надо,могут ведь убрать его из фильтра...
отсюда в смысле
Код
devices="$(lsblk -l -o NAME,TYPE | awk '$2 == "disk" && !/^(sda|zram0|fd0)/' | awk -F' ' '{print $1}' | peco)"
« Последнее редактирование: 28 Февраль 2024, 21:25:48 от totiks2012 »

Оффлайн imp

  • cat /dev/ass > /dev/head
  • Ветеран
  • *****
  • Сообщений: 1722
  • Репутация: +49/-1
  • /dev/hands < /dev/ass
а при бездисковой что флэшка может быть sda?
да
Компьютер имеет то преимущество перед мозгом, что им пользуются.

Оффлайн gumanzoy

  • Постоялец
  • ***
  • Сообщений: 110
  • Репутация: +13/-0
а при бездисковой что флэшка может быть sda?
Если система на nvme ssd и кроме него никаких SATA дисков нет - то тоже флешка будет sda.