Як створити живу систему на USB-накопичувачі з постійними змінами на диску / hdd


10

Я намагався встановити Ubuntu в прямому ефірі на USB-накопичувач із постійними змінами. Однак я хотів написати зміни на HDD замість USB з різних причин (продуктивність, пробіл).

Я з'ясував, що зміни обробляються у файлі з файловою системою ext3, яка монтується системою (casper-rw). Але це, здається, автоматично виявлено на флеш-диску при запуску.

Як я можу створити новий файл casper-rw на жорсткому диску та переправити живу систему Ubuntu на USB-накопичувачі до жорсткого диска?

редагувати 2015-07-14:

Дякую за відповіді поки що. Вони дуже цікаві і багато допомагають краще зрозуміти механіку "живої системи постійної збереження" та продемонструвати хороші підходи до вирішення проблеми. На жаль, я намагався подолати деякі обмеження, які я мав на увазі, задаючи питання щодо доступу до хост-системи та / або доступу до нового обладнання, я чітко не зазначив (вибачте за це).

Якщо розділення - це варіант, я вважаю, що відповідь, викладена тут , дуже хороша, оскільки вимагає лише створити новий розділ, позначити його casper-rw, і ви закінчили (робота чудова, я перевірив її).

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

Тож мені було цікаво, чи є спосіб просто створити файл casper-rw замість розділу на диску з обмеженим доступом до (або скопіювати / зв’язати той на флеш-диску).

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


Не впевнений, що це варіант, але якщо вам потрібно лише зберегти дані, ви також можете просто встановити розділ HDD десь до вашого дерева файлової системи в реальному часі ... Однак на диску ви маєте лише певні папки.
Байт командир

@ByteCommander дякую за ваш коментар. На жаль, розділення жорсткого диска для мене не є варіантом, і я хотів би, щоб усе було максимально компактним, щоб я міг видаляти дані швидко і просто, тому єдиний файл на жорсткому диску був би ідеальним.
LS

Повинно бути змонтованим також файл, що містить зображення файлової системи (наприклад, .iso або .img, можливо, більше). На жаль, я ніколи цього не робив і не можу вам сказати, як це зробити ...
Байт командир

Звідки ти знаєш, що це не працює? Ваш файл названий casper-rw ? Це в корені вашого розділу ? Я зробив це (використовуючи стійкість на жорсткому диску з розділом, позначеним casper-rw замість цього), і я не пригадую жодного зайвого необхідного кроку.
solsTiCe

Ваша остання редакція робить ваше запитання занадто конкретним, щоб бути широким застосуванням (що моя відповідь ...) Це не неможливо, але це означатиме створення сценаріїв та правил udev для [unmount] - [синхронізувати на жорсткий диск] - [mount] при вставці і [синхронізувати на жорсткий диск] на демонтаж, але це дуже багато роботи і не дуже підходить для таких питань, як цей.
Fabby

Відповіді:


4

Ви можете легко поставити записувану файлову систему (у файл casper-rw) для живого носія на жорсткий диск. Обмеженням є те, що файл casper-rw повинен переходити на розділ FAT. Більш нові машини (UEFI) мають розділ FAT EFI, але це, як правило, занадто мало, щоб вмістити файл 1G-4G casper-rw. На іншому досить великому розділі FAT ви можете робити каталоги, кожен з яких містить файл casper-rw для можливо різних медіа-файлів. Припустимо, sda11 дорівнює 10G і має файлову систему 10G 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-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 буде скопійована в операційний режим і забезпечить набагато кращу продуктивність, однак, як видається, проблема з відключенням з розділом FAT не бути чисто відключеним (що, здається, не викликає проблем, але ...)


Дякую. Це робить речі набагато зрозумілішими. Я припускаю, що в стані завантаження ntfs не можна розпізнати (так?), Що робить неможливим наявність casper-rw на розділі ntfs. Тому я думаю, що я піду або з розділом ext4, позначеним casper-rw, або спробую якийсь "toram" або ramdrive речі.
LS

Як ви модифікуєте grub.cfgабо syslinux.txtвраховуєте, що ви могли монтувати лише живі медіа, прочитані лише як це ізо ??
solsTiCe

Вищезгадане використовувало ISO для створення живого носія USB, на якому файли можуть бути записані. Під час завантаження ISO безпосередньо (наприклад, на жорсткому диску) використовується абсолютно окрема grub (та, яка знаходиться на жорсткому диску), файли якої можна редагувати - у цьому випадку взагалі не використовуються механізми завантаження з ISO.
ubfan1

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додати напівжирний PARAMATERS на завантажувальний USB лінії. (Можливо, це буде sdcабо sdd. Нижче наведено приклад, використовуйте UID, якщо можливо)

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

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

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

    nobootwait,nofail

    щоб дозволити завантажуватись навіть тоді, коли жорсткого диска немає (якщо це так, доступ матиме лише користувач адміністратора, а не звичайний користувач)

  5. Тепер увійдіть як адміністратор і перемістіть домашній каталог звичайного користувача з 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 років, і він все ще працює!)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.