Хочете мати свою переносну Linux-систему, яка зберігає ваші дані, сама оновлюється та ще й робить бекапи? Ви — у правильному місці. Нижче я покажу, як зробити Live USB на Debian/Ubuntu з persistent /home, налаштувати автооновлення пакетів і автоматичні резервні копії — зручний набір для подорожей і форс-мажорів 🙂

Що знадобиться

  • USB-носій від 16 ГБ (краще 32+ ГБ для комфортної роботи).
  • Образ ISO Debian Live або Ubuntu (офіційний сайт).
  • Будь-який встановлений Linux для підготовки флешки.
  • Рекомендовано: Ventoy для зручного multi-ISO та persistence.

Основний How-to: Ventoy + persistence (універсально)

Ventoy дозволяє просто копіювати ISO на флешку і вмикати збереження змін через persistence. Для Debian можна обмежити збереження тільки до /home, а для Ubuntu, як правило, зберігаються всі зміни (casper).

1) Встановіть Ventoy на USB

Уважно визначте свій пристрій (наприклад, /dev/sdX). Усі дані на ньому буде стерто.

sudo apt update
sudo apt install ventoy -y   # якщо немає в репо, завантажте .tar.gz з github.com/ventoy/Ventoy
sudo ventoy -i /dev/sdX      # ЗАМІНІТЬ sdX на ваш диск (не розділ!)

2) Скопіюйте ISO на флешку

cp ~/Завантаження/ubuntu-24.04-desktop-amd64.iso /media/$USER/VENTOY/
cp ~/Завантаження/debian-live-12-amd64-gnome.iso /media/$USER/VENTOY/
sync

3) Створіть файли persistence

Для Debian створимо файл з конфігом, що зберігає лише /home (можна змінити на повну «/ union», щоб зберігались і встановлені пакети). Для Ubuntu достатньо «casper-rw» (часто все збережеться автоматично).

# Приклад: Debian persistence тільки для /home (8 ГБ)
cd /media/$USER/VENTOY/
fallocate -l 8G debian-persistence.dat
mkfs.ext4 -L persistence debian-persistence.dat
mkdir -p /mnt/persist
sudo mount -o loop debian-persistence.dat /mnt/persist
echo "/home" | sudo tee /mnt/persist/persistence.conf > /dev/null
sudo umount /mnt/persist

# Приклад: Ubuntu persistence (8 ГБ)
fallocate -l 8G ubuntu-casper-rw.dat
mkfs.ext4 -L casper-rw ubuntu-casper-rw.dat

4) Налаштуйте Ventoy plugin (прив’язка .dat до ISO)

Створіть файл ventoy.json у каталозі ventoy на флешці. Ventoy автоматично додасть «persistent» у параметри ядра.

cat <<'JSON' | tee /media/$USER/VENTOY/ventoy/ventoy.json
{
  "persistence": [
    {
      "image": "/ubuntu-24.04-desktop-amd64.iso",
      "backend": "/ubuntu-casper-rw.dat"
    },
    {
      "image": "/debian-live-12-amd64-gnome.iso",
      "backend": "/debian-persistence.dat"
    }
  ]
}
JSON
sync

Тепер можна завантажуватися з Live USB. Якщо persistence раптом не спрацює, у меню GRUB натисніть «e» і додайте слово «persistent» у параметри ядра перед завантаженням.

Автооновлення пакетів (unattended-upgrades + systemd)

Щоб «оновлення Linux» відбувалося самостійно, найпростіше увімкнути unattended-upgrades та перевірити штатні «cron та systemd timers» для apt.

sudo apt update
sudo apt install -y unattended-upgrades apt-listchanges
sudo dpkg-reconfigure -plow unattended-upgrades   # Увімкніть автоновлення без нагляду

# Перевірка таймерів APT
systemctl list-timers '*apt*'
# За потреби: увімкніть вручну
sudo systemctl enable --now apt-daily.timer apt-daily-upgrade.timer

Хочете власний цикл оновлень? Додайте сервіс і таймер:

# /etc/systemd/system/auto-update.service
[Unit]
Description=Auto apt update & upgrade
Wants=network-online.target
After=network-online.target

[Service]
Type=oneshot
ExecStart=/usr/bin/apt-get update
ExecStart=/usr/bin/apt-get -y dist-upgrade
ExecStart=/usr/bin/apt-get -y autoremove --purge
ExecStart=/usr/bin/apt-get -y autoclean

# /etc/systemd/system/auto-update.timer
[Unit]
Description=Run auto-update daily

[Timer]
OnCalendar=daily
Persistent=true

[Install]
WantedBy=timers.target

sudo systemctl daemon-reload
sudo systemctl enable --now auto-update.timer

Пам’ятайте: якщо ви залишили Debian з persistence тільки для /home, встановлені пакети не переживуть перезавантаження. Для збереження змін системи використовуйте «/ union» у persistence.conf або повний persistence в Ubuntu.

Автоматичні бекапи /home з rsync

Щоб «резервне копіювання системи» було незалежне від основної persistence, краще мати окремий розділ/диск для бекапів (наприклад, третій розділ на тому ж USB з міткою backup).

# Приклад: створіть розділ backup і змонтуйте його в /mnt/backup
sudo mkdir -p /mnt/backup
# якщо використовується інший диск/розділ: sudo mount /dev/sdXY /mnt/backup

# Скрипт бекапу /home
sudo tee /usr/local/bin/usb-backup.sh > /dev/null <<'SH'
#!/usr/bin/env bash
set -euo pipefail
BACKUP_MNT=/mnt/backup
SRC=/home
DATE=$(date +%Y-%m-%d_%H-%M)
DEST="$BACKUP_MNT/home-$DATE"
mkdir -p "$DEST"
rsync -aHAX --delete --numeric-ids "$SRC/" "$DEST/"
# Прибрати бекапи старше 14 днів
find "$BACKUP_MNT" -maxdepth 1 -type d -name 'home-*' -mtime +14 -exec rm -rf {} +
SH
sudo chmod +x /usr/local/bin/usb-backup.sh

# systemd unit + timer
sudo tee /etc/systemd/system/usb-backup.service > /dev/null <<'UNIT'
[Unit]
Description=Backup /home to /mnt/backup with rsync
Requires=mnt-backup.mount
After=mnt-backup.mount

[Service]
Type=oneshot
ExecStart=/usr/local/bin/usb-backup.sh
UNIT

sudo tee /etc/systemd/system/usb-backup.timer > /dev/null <<'UNIT'
[Unit]
Description=Daily /home backup

[Timer]
OnCalendar=daily
Persistent=true

[Install]
WantedBy=timers.target
UNIT

sudo systemctl daemon-reload
sudo systemctl enable --now usb-backup.timer

За потреби адаптуйте монтування backup-розділу (fstab або автоматичний монт через udisks) і переконайтеся, що права доступу зберігаються. Це чисті «bash скрипти», тож легко змінювати логіку ротації.

Альтернативні способи

  • Без Ventoy (рідний спосіб Debian): створіть другий розділ ext4 з міткою persistence, змонтуйте його й додайте файл persistence.conf з рядком /home або / union. Під час завантаження додайте параметр ядра persistence.
  • Без Ventoy (Ubuntu casper): створіть розділ/файл з міткою casper-rw або writable, завантажуйтеся з параметром persistent. Як правило, зміни системи теж зберігаються.

GUI-спосіб: mkusb

Любите «натискалки»? mkusb робить persistent Live USB для Ubuntu/Debian через графічний інтерфейс.

sudo add-apt-repository ppa:mkusb/ppa -y
sudo apt update
sudo apt install -y mkusb mkusb-nox usb-pack-efi
# Запустіть mkusb, оберіть ISO, носій та розмір persistent-області, далі — підказки майстра

Після створення перевірте, що при завантаженні обраний режим із persistence.

FAQ

Persistence не працює — що робити?

Перевірте: 1) чи є параметр ядра persistent; 2) чи правильні мітки розділів/файлів (persistence для Debian, casper-rw/writable для Ubuntu); 3) для Debian — чи є persistence.conf із правильним вмістом.

UEFI/Legacy та Secure Boot?

Ventoy підтримує UEFI та може працювати з Secure Boot (з реєстрацією ключа). Якщо щось не йде — тимчасово вимкніть Secure Boot у BIOS.

Мало місця у persistence?

Створіть більший *.dat і підключіть його у ventoy.json, очистіть кеш: sudo apt-get clean, приберіть зайві файли у /home. Для Debian з розділом — збільште розмір розділу.

Зависання або блокування APT?

Іноді лишаються lock-файли. Видаліть їх обережно: sudo rm -f /var/lib/dpkg/lock-frontend /var/lib/apt/lists/lock /var/cache/apt/archives/lock, далі sudo dpkg --configure -a.

Таймери не запускаються без інтернету?

Використайте залежності network-online.target у сервісі або покладіться на unattended-upgrades: він виконається, коли мережа з’явиться.

Бекап падає через права доступу?

Переконайтесь, що розділ змонтовано з підтримкою прав (ext4) і використовується rsync -aHAX --numeric-ids. Для exFAT/FAT права не збережуться коректно.

Порада від Kernelka

Тримайте резервний маленький користувацький профіль і не забувайте періодично чистити кеши. Якщо робите багато експериментів — ведіть нотатки команд у /home (журнал «термінал Linux»), щоб швидко відтворювати конфіг при потребі. І так, «cron та systemd timers» — ваші найкращі друзі 🚀

Підсумок

  • Зробили Live USB із Ventoy і увімкнули persistence (мінімум /home).
  • Налаштували автооновлення пакетів через unattended-upgrades або власний systemd-таймер.
  • Додали автоматичні бекапи /home на окремий розділ/диск за допомогою rsync.
  • Знаєте альтернативи: рідний Debian/Ubuntu спосіб і GUI через mkusb.
  • Отримали переносну, стабільну систему з «розумною» автоматизацією.

Готово! Тепер ваш Live USB не просто «живий», а ще й самодостатній і дбайливий до ваших даних 😉