Jak stworzyć system na żywo na dysku USB z trwałymi zmianami na dysku / hdd

10

Próbowałem zainstalować Ubuntu na żywo na napędzie USB z trwałymi zmianami. Jednak chciałem zapisać zmiany na HDD zamiast na USB z różnych powodów (Performance, Space).

Dowiedziałem się, że zmiany są obsługiwane w pliku z systemem plików ext3, który jest montowany przez system (casper-rw). Wydaje się jednak, że podczas uruchamiania jest automatycznie wykrywany na dysku flash.

Jak mogę utworzyć nowy plik casper-rw na dysku twardym i przekierować system live z Ubuntu na dysk USB na dysk twardy?

edit 2015-07-14:

Dziękuję za dotychczasowe odpowiedzi. Są one bardzo interesujące i pomagają lepiej zrozumieć mechanizmy "trwałego systemu trwałego systemu" i wykazują dobre podejście do rozwiązania problemu. Niestety, próbowałem przezwyciężyć pewne ograniczenia, które miałem na myśli, gdy zadawałem pytanie dotyczące dostępu do systemu hosta i / lub dostępu do nowego sprzętu, którego nie wyraziłem jasno (przepraszam za to).

Jeśli partycjonowanie jest opcją, myślę, że odpowiedź brzmi tutaj jest bardzo dobra, ponieważ wymaga tylko utworzenia nową partycję, oznacz ją jako casper-rw i gotowe (praca jest świetna, testowałem ją).

Jeśli kupujesz nowy sprzęt, możesz skorzystać z opcji usb3.0 Flash-Drive (MLC lub SLC), przenośnych dysków twardych, eSATA i innych opcji, które mają znacznie lepszą wydajność niż przeciętny napęd USB 2.0.

Zastanawiam się, czy istnieje sposób, aby po prostu utworzyć plik casper-rw zamiast partycji na dysku z ograniczonym dostępem do (lub skopiować / połączyć tę na dysku flash).

W ten sposób łatwo będzie skopiować plik casper-rw z powrotem na dysk flash i użyć go ponownie lub przenieść na inny komputer, zapewniając dużą elastyczność, minimalne zmiany na dysku twardym i łatwe usuwanie zmiany wprowadzone w systemie.

    
zadawane L.S. 01.07.2015, 12:36
źródło

2 odpowiedzi

4

Możesz łatwo umieścić zapisywalny system plików (w pliku casper-rw) dla mediów na żywo na dysku twardym. Ograniczeniem jest to, że Plik casper-rw musi być na partycji FAT. Nowsze maszyny (UEFI) wszystkie mają partycję FAT EFI, ale zwykle jest to zbyt mało, aby ją pomieścić plik casper-rw 1G-4G. Na innej wystarczająco dużej partycji FAT możesz tworzyć katalogi, z których każdy posiada plik casper-rw dla możliwych różnych mediów na żywo.   Załóżmy, że sda11 jest 10G i ma system plików FAT 10G, zamontowany w / mnt / sda11, na którym znajdują się katalogi / A, / B, / C, / D i / E. Załóżmy, że użyjemy / A dla naszych trwałych mediów, umieszczając tam 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

Twórz media na żywo utworzone z zachowaniem i edytuj plik /boot/grub/grub.cfg i /syslinux/txt.cfg, dodając po słowie "trwałe"

"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
...

To wszystko. Nie musisz nawet zmieniać nazwy / usuwania pliku casper-rw na nośniku USB.

Jeśli na nośniku USB jest miejsce, możesz nawet skopiować dysk Casper-R dysku twardego z powrotem na USB i zabrać ze sobą zmiany.

Ścieżka stała nie pozwala na jawne odwoływanie się do dysku, dlatego powinna być unikalna na wszystkich partycjach FAT. Testowane z 1 lub 2 partycjami FAT (jedna z partycją EFI). Nie działa w systemie plików ext2 lub ntfs zamiast w FAT. Jeśli dodasz słowo "toram" w tym samym wierszu, co "persistent", skompresowany system plików na wolnym USB zostanie skopiowany do pamięci RAM i da znacznie lepszą wydajność, wydaje się, że istnieje problem z wyłączaniem, ponieważ partycja FAT nie jest całkowicie odmontowana (co nie wydaje się powodować problemów, ale ...)

    
odpowiedział ubfan1 14.07.2015, 00:52
źródło
7

To bardzo proste, jeśli użyjesz następującej konfiguracji:

  1. Zainstaluj Ubuntu na pamięci USB SLC (preferowane USB 3.0, jeśli twój sprzęt ją obsługuje) bez żadnych casper stuff (po prostu normalna instalacja, traktując USB jako SSD.)

    Dlaczego? SLC są dwa razy droższe niż MLCs , ale są 4 razy szybsze i ostatnie 8 * dłużej! Więc to naprawdę małe dyski SSD na patyku!

  2. Zoptymalizuj system i potraktuj pamięć USB jako mały dysk SSD, aby:

    W twoim /etc/sysctl.conf dodaj:

    # 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
    

    W twoim /etc/fstab dodaj pogrubione parametry do linii boot USB. (Prawdopodobnie będzie to sdc lub sdd . Poniższy przykład to UID, jeśli to możliwe)

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

  3. utwórz 2 użytkowników: administrator, który ma swój katalog osobisty na dysku USB, ale ma bardzo mało plików i zwykłego użytkownika, który będzie miał swój katalog domowy na dysku twardym.

  4. Dopiero teraz włóż dysk twardy i dodaj niezbędne informacje o dysku twardym do fstab , aby automatycznie zamontować dysk twardy i dodać następujące parametry:

    nobootwait,nofail

    , aby umożliwić uruchamianie nawet wtedy, gdy dysk twardy nie jest dostępny (w takim przypadku tylko użytkownik admin będzie miał dostęp, a nie zwykły użytkownik)

  5. Teraz zaloguj się jako administrator i przenieś katalog domowy zwykłego użytkownika z pamięci USB na dysk twardy:

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

Jeśli wszystko jest w porządku:

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

Gotowe! : -)

Dla przypomnienia: Mam taką samą pamięć USB 2.0 MLC 16 GB (więcej niż wystarczającą dla mojego przypadku użycia i niezbyt kosztowną, a teraz ma około 5 lat i nadal działa!)

    
odpowiedział Fabby 10.07.2015, 11:55
źródło

Przeczytaj inne pytania na temat tagów