![Сделанный! :-)](https://rvso.com/image/1127620/%D0%A1%D0%B4%D0%B5%D0%BB%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9!%20%3A-).png)
Я пытался установить Ubuntu live на USB-накопитель с сохранением изменений. Однако по разным причинам (производительность, место) мне хотелось записать изменения на HDD вместо USB.
Я обнаружил, что изменения обрабатываются в файле с файловой системой ext3, которая монтируется системой (casper-rw). Но, похоже, она автоматически определяется на флэш-накопителе при запуске.
Как создать новый файл casper-rw на жестком диске и перенаправить систему Ubuntu Live с USB-накопителя на жесткий диск?
редактировать 2015-07-14:
Спасибо за ответы. Они очень интересны и помогают лучше понять механику "функции постоянного сохранения в живой системе" и показывают хорошие подходы к решению проблемы. К сожалению, я пытался преодолеть некоторые ограничения, которые имел в виду, когда задавал вопрос относительно доступа к хост-системе и/или доступа к новому оборудованию, о которых я не указал четко (извините за это).
Если разделение является вариантом, я думаю, ответ был указанздесьочень хорош, так как для этого требуется только создать новый раздел, назвать его casper-rw и все готово (работает отлично, я проверял).
Если покупка нового оборудования является вариантом, на ум приходят флэш-накопители USB3.0 (MLC или SLC), портативные жесткие диски, eSATA и другие варианты, которые имеют гораздо лучшую производительность, чем средний флэш-накопитель USB2.0.
Поэтому мне стало интересно, есть ли способ просто создать файл casper-rw вместо раздела на диске с ограниченным доступом (или скопировать/связать его с флэш-накопителем).
Таким образом, можно будет легко скопировать файл casper-rw обратно на флэш-накопитель и использовать его оттуда снова или перенести на другой компьютер, что обеспечивает большую гибкость, минимальные изменения на жестком диске и простое удаление изменений, внесенных в систему.
решение1
Это очень просто, если использовать следующую настройку:
Установите Ubuntu наUSB-накопитель SLC(Предпочтительно USB 3.0, если ваше оборудование его поддерживает) без всяких касперовских штук (просто обычная установка, рассматривающая USB-накопитель как SSD).
Почему?SLC в два раза дороже, чемMLC-ыно они в 4 раза быстрее и служат в 8 раз дольше! Так что это действительно маленькие SSD-накопители на флешке!
Оптимизируйте систему и относитесь к 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
создайте 2 пользователей: администратора, у которого есть домашний каталог на USB-накопителе, но очень мало файлов, и обычного пользователя, которыйбудетего домашний каталог на жестком диске.
Только сейчасвставьте жесткий диск и добавьте необходимую информацию о жестком диске
fstab
для автоматического монтирования жесткого диска, а также добавьте следующие параметры:nobootwait,nofail
разрешить загрузку даже при отсутствии жесткого диска (в этом случае доступ будет только у администратора, а не у обычного пользователя)
Теперь войдите в систему как администратор и переместите домашний каталог обычного пользователя с USB-накопителя на жесткий диск:
cp --preserve=all /home/NormalUser/* /media/ExternalHDD/NormalUser
Если все в порядке:
rm --recursive --force /home/NormalUser/*
cd /home
ln --symbolic /media/ExternalHDD/NormalUser
Сделанный! :-)
Для справки: у меня есть 16 ГБ USB 2.0 MLC-флешка, как эта (более чем достаточно для моего случая, и не слишком дорогая, и ей уже около 5 лет, и она все еще работает!)
решение2
Вы можете легко поместить записываемую файловую систему (в файле casper-rw) для живого носителя на жесткий диск. Ограничением является то, что файл casper-rw должен находиться на разделе FAT. Все более новые машины (UEFI) имеют раздел FAT EFI, но он обычно слишком мал для хранения файла casper-rw размером 1–4 ГБ. На другом достаточно большом разделе FAT вы можете создать каталоги, каждый из которых будет содержать файл casper-rw для различных живых носителей. Предположим, что sda11 имеет размер 10 ГБ и имеет файловую систему FAT размером 10 ГБ, смонтированную в /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
Возьмите ваш живой носитель, созданный с помощью persistence, и отредактируйте файл /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-носителе есть место, вы даже можете скопировать файл casper-rw с жесткого диска обратно на USB-накопитель и забрать изменения с собой.
Permanent-path не допускает никаких явных ссылок на диски, поэтому должен быть уникальным для всех разделов FAT. Протестировано с 1 или 2 разделами FAT (один из которых является разделом EFI). Не будет работать на файловых системах ext2 или ntfs вместо FAT. Если вы также добавите слово "toram" в ту же строку, что и "persistent", ваша сжатая файловая система на медленном USB будет скопирована в оперативную память и обеспечит гораздо лучшую производительность, однако, похоже, есть проблема с выключением, так как раздел FAT не будет чисто размонтирован (что, похоже, не вызывает никаких проблем, но...)