Как создать живую систему на USB-накопителе с постоянными изменениями на диске / hdd

10

Я пытался установить Ubuntu в прямом эфире на USB-накопитель с постоянными изменениями. Однако я хотел записать изменения на HDD вместо USB по разным причинам (Performance, Space).

Я узнал, что изменения обрабатываются в файле с файловой системой ext3, которая монтируется системой (casper-rw). Но при запуске он автоматически обнаруживается на флеш-диске.

Как я могу создать новый файл casper-rw на HDD и перенаправить текущую систему Ubuntu на USB-накопитель на жесткий диск?

edit 2015-07-14:

Спасибо за ответы. Они очень интересны и помогают намного лучше понять механику «постоянной сохраненной функции сохранения» и показать хорошие подходы к решению проблемы. К сожалению, я пытался преодолеть некоторые ограничения, которые я имел в виду, задавая вопрос о доступе к хост-системе и / или доступе к новому оборудованию. Я явно не сказал (извините за это).

Если разделение является вариантом, я думаю, что ответ, указанный здесь , очень хорош, так как он требует только создания новый раздел, назовите его casper-rw, и все готово (отлично работает, я его протестировал).

Если покупать новое оборудование - это вариант, на память приходят usb3.0 Flash-Drive (MLC или SLC), переносные жесткие диски, eSATA и другие опции, которые имеют гораздо лучшую производительность, чем средний флэш-накопитель USB2.0.

Мне было интересно, есть ли способ создать файл casper-rw вместо раздела на диске с ограниченным доступом (или скопировать / связать его с флеш-накопителем).

Таким образом, было бы просто просто скопировать файл casper-rw обратно на флеш-накопитель и снова использовать его снова или перенести на другой компьютер, обеспечивая большую гибкость, минимальные изменения на жестком диске и простое удаление изменения, внесенные в систему.

    
задан L.S. 01.07.2015 в 10:36
источник

2 ответа

3

Вы можете легко разместить записываемую файловую систему (в файле casper-rw) для живого носителя на жесткий диск. Ограничение заключается в том, что Файл casper-rw должен перейти в раздел FAT. Новые машины (UEFI) все имеют раздел FAT EFI, но это обычно слишком мало для хранения файл 1G-4G casper-rw. На другом достаточно большом разделе FAT вы можете создавать каталоги, каждый из которых содержит файл casper-rw для возможных разных медиа-медиа.   Предположим, что sda11 является 10G и имеет файловую систему 10 G FAT, установленную в / mnt / sda11, на которой есть каталоги / A, / B, / C, / D и / E. Предположим, что мы будем использовать / A для наших постоянных носителей, помещая там casper-rw.

cd /mnt/sda11/A
dd if=/dev/zero of=casper-rw bs=1M  count=4096
mkfs.ext4 -F -O^has_journal -L casper-rw casper-rw

Возьмите свои живые медиа, созданные с сохранением, и отредактируйте файл /boot/grub/grub.cfg и файл /syslinux/txt.cfg, добавив после слова «persistent»

"persistent-path=/A"

/boot/grub/grub.cfg ...

menuentry "Try Ubuntu without installing" {
    set gfxpayload=keep
    linux   /casper/vmlinuz.efi  file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash --- cdrom-detect/try-usb=true noprompt persistent persistent-path=/A
    initrd  /casper/initrd.lz
}

/syslinux/txt.cfg

default live
label live
menu label ^Try Ubuntu without installing
kernel /casper/vmlinuz.efi
append noprompt cdrom-detect/try-usb=true persistent persistent-path=/A file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/casper/initrd.lz quiet splash ---
label live-install
...

Вот и все. Вам даже не нужно переименовывать / удалять файл casper-rw на USB-носителе.

Если на USB-носителе есть место, вы можете даже скопировать накопитель на жесткий диск обратно на USB-накопитель и принять ваши изменения с собой.

Постоянный путь не допускает явной ссылки на диск, поэтому он должен быть уникальным во всех разделах FAT. Протестировано с 1 или 2 разделами FAT (один из них - раздел EFI). Не будет работать в файловой системе ext2 или ntfs вместо FAT. Если вы также добавите слово «toram» в той же строке, что и «persistent», ваша сжатая файловая система на медленном USB будет скопирована в ram и даст гораздо лучшую производительность, похоже, проблема с закрытием, при этом раздел FAT не очищается полностью (что, похоже, не вызывает проблем, но ...)

    
ответ дан ubfan1 13.07.2015 в 22:52
источник
7

Это очень просто, если вы используете следующую настройку:

  1. Установите Ubuntu на USB-флешке SLC (рекомендуется USB 3.0, если ваше оборудование поддерживает его) без каких-либо вещей в кассе (просто обычная установка, рассматривающая USB-накопитель как SSD.)

    Почему? SLC вдвое дороже, чем MLC , но они В 4 раза быстрее и длится 8 * дольше! Итак, они действительно маленькие SSD на палочке!

  2. Оптимизируйте систему и обработайте USB-накопитель как небольшой SSD, поэтому:

    В вашем /etc/sysctl.conf добавить:

    # Fabby: change the "swappiness" to 10 to prevent swapping as much as possible
    # to not wear out the USB stick as the Ubuntu default is optimized for a server.
    # 10 to balance with vfs_cache_pressure
    vm.swappiness = 10
    
    # Fabby: Lower vfs_cache_pressure to 75% 
    # (once cached, probably not immediately needed any more)
    #
    # This percentage value controls the tendency of the kernel to reclaim
    # the memory which is used for caching of directory and inode objects.
    #
    # At the default value of vfs_cache_pressure=100 the kernel will attempt to
    # reclaim dentries and inodes at a "fair" rate with respect to pagecache and
    # swapcache reclaim.  Decreasing vfs_cache_pressure causes the kernel to prefer
    # to retain dentry and inode caches.
    vm.vfs_cache_pressure = 75
    
    # Fabby: Good to improve sequential reads (stop stuttering in movie play)
    # Can also be implemented per disk using udev rules
    vm.max-readahead=2048
    vm.min-readahead=1024
    

    В вашем /etc/fstab добавьте жирные параметры к вашей загрузочной USB-линии. (Вероятно, это будет sdc или sdd . Ниже приведен пример использования UID, если это возможно)

    /dev/sdc / ext4 defaults,noatime,discard,errors=remount-ro 0 1

  3. создайте 2 пользователя: пользователь admin, у которого есть свой домашний каталог на USB-накопителе, но имеет очень мало файлов и обычного пользователя, у которого будет домашний каталог на жестком диске.

  4. Только сейчас вставьте жесткий диск и добавьте необходимую информацию о HDD в ваш fstab для автоматической установки жесткого диска и добавьте следующие параметры:

    nobootwait,nofail

    , чтобы разрешить загрузку, даже если жесткий диск не присутствует (если это так, только пользователь admin получит доступ, а не обычный пользователь)

  5. Теперь войдите в систему как пользователь admin и переместите домашний каталог для обычного пользователя с USB-накопителя на жесткий диск:

cp --preserve=all /home/NormalUser/* /media/ExternalHDD/NormalUser

Если все в порядке:

rm --recursive --force /home/NormalUser/*
cd /home
ln --symbolic /media/ExternalHDD/NormalUser

Готово! : -)

Для записи: у меня есть 16GB USB 2.0 MLC-палочка точно так же (это более чем достаточно для моего прецедента и не слишком дорого, а сейчас около 5 лет и все еще работает!)

    
ответ дан Fabby 10.07.2015 в 09:55