Как создать Debian, живой USB с персистентностью?

Что касается vsftpd.conf часть, следующие работы для меня (не может помочь с SELinux, извините):

anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_root=/tmp/ftp
anon_upload_enable=YES
anon_world_readable_only=YES
anonymous_enable=YES
ascii_upload_enable=YES
connect_from_port_20=YES
dirmessage_enable=YES
listen=YES
local_enable=YES
nopriv_user=ftpsecure
ssl_enable=NO
syslog_enable=YES
write_enable=YES

Обратите внимание, что Вы не можете записать гостиницу anon_root каталог - вместо этого необходимо создать записываемый подкаталог и загрузку там.

Мог возможно NFS быть более оптимальным вариантом? В версии 4 это может даже обеспечить прозрачное шифрование при желании.

11
10.03.2014, 13:19
3 ответа
Почему бы вам не сделать новую установку Debian, выбрав в качестве места назначения usb-устройство, а не ваш жёсткий диск? Какой объём у вашего usb?

У меня установлен и работает Debian LXDE на карте памяти usb объёмом 4 ГБ, который позволяет обновлять систему в любое время и устанавливать пакеты, когда они мне нужны..

4
27.01.2020, 19:58

Клонирование и постоянные живые Debian

Клонирование(копирование каждого байта как есть, создание от -до -одной копии )— это очень простой и надежный метод создания загрузочного диска (живого диска или установочного диска )из ISO-файла гибридного Linux.

Не существует обычного способа сделать клонированный iso-файл Debian постоянным, поскольку он имеет файловую систему -только для чтения, ISO9660, (и «таблицу разделов» )только для чтения -.

Использование mkusb (BIOS/UEFI)

Возможно (и я бы сказал довольно просто )использовать mkusb для создания постоянного живого диска из живого iso-файла Debian . mkusb поддерживает Debian 8 или новее, и вы должны использовать текущую версию mkusb (версии 12.3.3 или новее ).

mkusb создает таблицу разделов и 5 разделов:

  1. Раздел NTFS для обмена данными с компьютерами Windows (необязательный размер)
  2. Расширенный раздел или bios_grubраздел
  3. Загрузочный раздел FAT32 для загрузки сgrub(как в режиме UEFI, так и в режиме BIOS)
  4. Раздел ISO9660, содержащий клон файла iso
  5. extраздел для сохранения, где хранятся ваши модификации (и файлы )

mkusb автоматически выполняет следующие настройки:

  • Вариант загрузкиpersistence(не persistent, как в Ubuntu)
  • Метка persistenceна разделе #5 (не casper-rwкак в Ubuntu)
  • Файл persistence.confс содержимым / unionна верхнем уровне раздела #5.

Эта структура создается шелл-скриптом bash dus-persistent, когда вы используете mkusb версии 12, псевдоним mkusb-dus. Если вам нужны все подробности, установите mkusb и прочитайте содержимое dus-persistentили прочитайте его напрямую через philw.net/isos/linux -tools/mkusb/dus -persistence .

Настройки mkusb по умолчанию можно использовать для Debian 8, 9 и 10, а постоянный живой диск будет работать при загрузке в режиме BIOS и режиме UEFI (, но не при безопасной загрузке ).

(В предыдущей версии mkusb 12.3.2 вы должны вручную установить «usb -pack -efi» в меню «Настройки» для Debian 10 в режиме UEFI.)

Использование ручной настройки (Только UEFI)

Если вам нужна только загрузочная флешка UEFI, вам вообще не нужен установщик.

Вам просто нужно отформатировать флешку в FAT32 и установить флаг загрузки. Затем используйте любой ваш любимый инструмент для извлечения, например 7zip, чтобы извлечь и скопировать ISO в раздел FAT32 . Для получения дополнительной информации см. Сделай сам .

Я проверил этот метод со стандартным live iso-файлом (, небольшим, без графической среды рабочего стола ),

debian-live-10.0.0-amd64-standard.iso

Таким образом, вы можете создать загрузочный USB-накопитель с Debian 10 (64 -бит ). Он будет работать только -и загружаться в режиме UEFI.

  • Создайте достаточно большой раздел FAT32 для хранения файлов из файла iso (добавьте примерно 5 % к размеру файла iso)
  • Смонтируйте раздел FAT32
  • Извлеките дерево каталогов содержимого (со всеми файлами )файла iso в раздел FAT32

Теперь у вас есть живой -только загрузочный USB-накопитель

  • Отредактируйте слово persistenceв конце строки (с ), начиная с linuxв файле

    /path/to/mountpoint/boot/grub/grub.cfg
    
  • Создайте разделext2в нераспределенном пространстве (за разделом FAT32)

  • Поместите метку persistenceна разделext2
  • Смонтировать разделext2
  • Запись / unionв файл persistence.confв файловой системеext2

  • Размонтировать все разделы на флешке перед отключением или перезагрузить

Теперь у вас есть постоянно работающий USB-накопитель с Debian 10.


Вывод команды виден из постоянного живого диска:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            7.8G     0  7.8G   0% /dev
tmpfs           1.6G  9.0M  1.6G   1% /run
/dev/sdb1       4.0G  826M  3.2G  21% /run/live/persistence/sdb1
/dev/loop0      610M  610M     0 100% /run/live/rootfs/filesystem.squashfs
tmpfs           7.8G     0  7.8G   0% /run/live/overlay
/dev/sdb2        11G   38M   11G   1% /run/live/persistence/sdb2
overlay          11G   38M   11G   1% /
tmpfs           7.8G     0  7.8G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           7.8G     0  7.8G   0% /sys/fs/cgroup
tmpfs           7.8G     0  7.8G   0% /tmp
tmpfs           1.6G     0  1.6G   0% /run/user/1000

$ lsb_release -a
Distributor ID: Debian
Description:    Debian GNU/Linux 10 (buster)
Release:    10
Codename:   buster

$ lsblk -fm /dev/sdb
NAME   FSTYPE LABEL       UUID                                 FSAVAIL FSUSE% MOUNTPOINT                            SIZE OWNER GROUP MODE
sdb                                                                                                                14.8G             brw-rw----
├─sdb1 vfat   USBBOOT     7176-C538                               3.2G    20% /usr/lib/live/mount/persistence/sdb1    4G             brw-rw----
└─sdb2 ext2   persistence 2b324439-d63e-4a19-bf57-d49ecb881828     10G     0% /usr/lib/live/mount/persistence/sdb2 10.8G             brw-rw----

Вы можете видеть, что размер overlayсоответствует размеру /dev/sdb2, что указывает на то, что постоянство работает.

Использованиеmkusb-minp(BIOS/UEFI)

Можно (и я бы сказал довольно просто )использоватьmkusb -minpдля создания постоянного живого диска из живого iso-файла Debian. mkusb -minp поддерживает Debian 10 или новее. Этот простой шеллскрипт разработан на основе mkusb -min . Оба они «обертывают ремень безопасности» вокруг процесса клонирования, чтобы избежать записи на неправильное устройство.

Это хороший вариант, если вы не хотите добавлять программное обеспечение через PPA или вообще хотите использовать только понятные инструменты.

6
27.01.2020, 19:58

Debian живет с упорством.

  1. Первая попытка с официальным изображением изwww.debian.org/CD/live/

    С сайта SE (в стандартной версии):

    wget https://cdimage.debian.org/debian-cd/current-live/amd64/iso-hybrid/debian-live-10.0.0-amd64-standard.iso
    

    Из автоматического выбора зеркала (mate live):

    wget http://debian-cd.debian.net/debian-cd/10.0.0-live/amd64/iso-hybrid/debian-live-10.0.0-amd64-mate.iso
    

    Затем контрольная сумма загружает файл сhttps://cdimage.debian.org/debian-cd/current-live/amd64/iso-hybrid/SHA256SUMS...

    Файловая система ISO в порядке для чтения -только , но есть небольшойобходной путь:мы могли бы заменить несущественные параметры загрузки на persistenceтаким образом.

    • После проверки файла!
    • вы можете изменить их, используя sedдля замены строк в двоичном формате.

      LANG=C sed 's/splash quiet/persistence /;s/quiet splash/persistence /' \
          </tmp/debian-live-10.0.0-amd64-mate.iso \
          >/tmp/debian-live-10.0.0-amd64-mate-persist.iso
      

    Это создаст измененную копию вашего живого двоичного файла путем строгой замены splash quietили quiet splashна persistenceвезде. Хорошо, это будет работать, только если команда загрузки grub содержит эти два слова вместе.

    Но будьте осторожны, чтобы не пропустить пробел после настойчивости:

    "splash quiet" -> 12 characters
    "persistence " -> 12 characters
    

    Или ваш бинарный файл будет сломан.

  2. Установить на USB-накопитель

    dd if=debian-live-10.0.0-amd64-standard-persist.iso of=/dev/sdX
    

    Затем добавьте свой третий раздел для сохранения:

    fdisk /dev/sdX
    n           # new partition
    p           # primary
    <Return>    # default: 3
    <Return>    # default: next free sector
    <Return>    # default: last addressable sector
    w           # write and quit
    

    Это можно было запустить без взаимодействия:

    fdisk /dev/sdX <<<$'n\np\n\n\n\nw'
    

    Форматирование и подготовка сохранения с помощьюunion:

    mkfs.ext4 -L persistence /dev/sdX3
    mount /dev/sdX3 /mnt
    echo '/ union' >/mnt/persistence.conf
    sync
    umount /mnt
    

    Тогда извлеките и попробуйте!

    Если вы используете официальный немодифицированный образ, для использования сохраняемости вам необходимо прервать выбор загрузки:

    После отображения экрана меню выберите вариант загрузки, затем вместо Вернуться нажмите Tab .

    Отобразится командная строка ядра, затем добавьте persistenceс пробелом после последнего слова (quiet), затем нажмите Return .

    К сожалению, поскольку 1-й раздел связан с UEFI и является ISO-образом, вы не можете изменить команду загрузки.

Настраиваемый Debian live с постоянным сохранением

Вам просто нужно добавить persistenceв командную строку загрузки, и больше ничего!? Есть способ, используя FAT и syslinux, но вам придется много манипулировать данными. Это долго, и я нахожу это не очень хорошо. Я предпочитаю:

  1. Создайте свой собственный Debian вживую

    Более обычный , но немного длиннее (по крайней мере для 1-го изображения ),

    Примечание :Все это было сделано подкорневымпользователем (это должно работать с использованием fakeroot, но это не тестировалось там и сегодня ).

    apt install live-build
    

    ... и все рекомендации.

    Я написал небольшую XARGSфункцию для удаления закомментированных строк:

    XARGS() { sed -ne '/#/d;s/ \t//g;H;${x;s/\n/ /g;s/^ //;p}'; }
    

    Первая настройка bootparams, с локализацией и аргументами сохранения:

    ExtraBootParams=$(XARGS <<eobp
        boot=live
        config
        locales=ed_WT
        keyboard-layouts=ed
        keyboard-variant=wt
        persistence
    eobp
    )
    

    Теперь ваш список пакетов:

    PackageList=$(XARGS <<-eopl
        gnome
        gnome-core
        # gnome-full
        # debian-forensics
        debian-installer-launcher
    eopl
    )
    

    Самый первый шагlb:создание начального дерева:

    lb config --architectures amd64 -d buster --debian-installer-gui \
        true --archive-areas 'main contrib non-free' \
        --bootappend-live "$ExtraBootParams" 
    

    Теперь у вас есть маленькое дерево, вы можете:

    printf "%s\n" > config/package-lists/standard.list.chroot \
        $Packages $PackageList
    

    Хорошо, следующая команда займет очень много времени! (Приблизительно 1 час на моем хосте)

    lb build
    

    Если все в порядке, вы можете найти свой собственный Debian live:

    ls -l *.iso
    -rw-r--r--  1 root root 1511817216 sep  7 15:32 live-image-amd64.hybrid.iso
    
  2. Установить на USB-ключ (та же операция, что и для загруженных двоичных файлов)

    Образ 'iso -гибридный' содержит два раздела для UEFI и живого микса таким образом, что оба EFI и bios могут загружаться.

    file live-image-amd64.hybrid.iso
    live-image-amd64.hybrid.iso: DOS/MBR boot sector; partition 2 : ID
    =0xef, start-CHS (0x3ff,254,63), end-CHS (0x3ff,254,63), startsect
    or 708, 5696 sectors
    

    Вы можете просто вставить в свой USB-ключ.:(Примечание :сначала убедитесь, что ваш USB-ключ не подключен!)

    dd if=live-image-amd64.hybrid.iso of=/dev/sdX
    

    Затем добавьте свой третий раздел для сохранения:

    fdisk /dev/sdX <<<$'n\np\n\n\n\nw'
    

    Форматирование и подготовка сохранения с помощьюunion:

    mkfs.ext4 -L persistence /dev/sdX3
    mount /dev/sdX3 /mnt
    echo '/ union' >/mnt/persistence.conf
    sync
    umount /mnt
    

    Извлечь и попробовать...

Debian live с зашифрованным сохранением

  1. Создайте свой собственный Debian в реальном времени, но с зашифрованным сохранением .

    Чтобы загрузиться с rootfs /при зашифрованном сохранении, необходимо добавить dm-cryptмодуль и связанные двоичные файлы на initrd(начальный электронный диск ), добавив параметр CRYPTSETUP=yв /etc/initramfs-tools/hooks/...

    Я написал небольшую XARGSфункцию для удаления закомментированных строк:

    XARGS() { sed -ne '/#/d;s/ \t//g;H;${x;s/\n/ /g;s/^ //;p}'; }
    

    Первая настройка bootparamsс локализацией и аргументами для сохраняемости и настройки шифрования:

    ExtraBootParams=$(XARGS <<eobp
        boot=live
        config
        locales=ed_WT
        keyboard-layouts=ed
        keyboard-variant=wt
        persistent=cryptsetup
        persistence-encryption=luks
        persistence
    eobp
    )
    

    Теперь ваш список пакетов:

    PackageList=$(XARGS <<-eopl
        gnome
        gnome-core
        # gnome-full
        # debian-forensics
        debian-installer-launcher
    eopl
    )
    

    И ваш выбор пакета:

    Packages=$(XARGS <<-eopk
        cryptsetup
        cryptsetup-initramfs
        debian-installer-launcher
        firmware-linux-nonfree
        firmware-linux-free
        less
        ssh
    #   openvpn
    #   xtightvncviewer
        gsmartcontrol
        smartmontools
        partclone
        ntfs-3g
        task-gnome-desktop
        user-setup
        sudo
        apt-utils
    eopk
    )
    

    Конечно cryptsetupтребуется! ;-)

    Самый первый шагlb:создание начального дерева:

    lb config --architectures amd64 -d buster --debian-installer-gui \
        true --archive-areas 'main contrib non-free' \
        --bootappend-live "$ExtraBootParams" 
    

    Теперь у вас есть маленькое дерево, вы можете:

    printf "%s\n" > config/package-lists/standard.list.chroot \
        $Packages $PackageList
    

    Хорошо, следующие две команды займут очень много времени! (Примерно 40 м на моем хосте)

    lb bootstrap ; lb chroot
    

    Теперь вы можете добавить свой модуль и бинарники:

    echo dm-crypt >> chroot/etc/initramfs-tools/modules
    
    sed '/CRYPTSETUP=/s/^#//;s/=.*/=y/' -i \
        chroot/etc/cryptsetup-initramfs/conf-hook 
    ln -s../../cryptsetup-initramfs/conf-hook \
        chroot/etc/initramfs-tools/hooks/cryptsetup
    chroot chroot live-update-initramfs -u
    

    Затем запустить финальную стадию (займет еще много времени ~25'):

    lb installer ; lb binary
    

    Примечание :Если вы читаете cryptsetup: WARNING: Couldn't determine root device, все в порядке! Это означает, что cryptsetup установлен на вашем initrd.

    Если все в порядке, вы можете найти свой собственный Debian live:

    ls -l *.iso
    -rw-r--r--  1 root root 1511817216 sep  7 15:32 live-image-amd64.hybrid.iso
    
  2. Установить на USB-накопитель

    'iso -гибридный' umage уже содержит два раздела для UEFI и живое сведение таким образом, что EFI и BIOS могут загружаться.

    file live-image-amd64.hybrid.iso
    live-image-amd64.hybrid.iso: DOS/MBR boot sector; partition 2 : ID
    =0xef, start-CHS (0x3ff,254,63), end-CHS (0x3ff,254,63), startsect
    or 708, 5696 sectors
    

    Вы можете просто вставить в свой USB-ключ.:(Примечание :сначала убедитесь, что ваш USB-ключ не подключен!)

    dd if=live-image-amd64.hybrid.iso of=/dev/sdX
    

    Добавьте новый раздел Linux, используя свободное место.

    fdisk /dev/sdX <<<$'n\np\n\n\n\nw'
    

    Это создаст раздел 3 , используя свободное место на вашем USB-накопителе.

    Затем подготовьте зашифрованный раздел

    cryptsetup -q luksFormat /dev/sdX3
    

    Введите пароль

    cryptsetup -q luksOpen /dev/sdX3 persist 
    

    Введите пароль еще раз

    mkfs.ext4 -L persistence /dev/mapper/persist
    mount /dev/mapper/persist /mnt
    echo '/ union' >/mnt/persistence.conf
    sync
    umount /mnt
    cryptsetup luksClose persist
    

Вот и все.

eject /dev/sdX
11
27.01.2020, 19:58

Теги

Похожие вопросы