Oszukać instalatora, aby użyć roota btrfs z kompresją


9

Chcę zainstalować Maverick na partycji głównej BTRFS. Nie dla zabawy lub testowania, ale ponieważ potrzebuję kompresji ze względu na mały dysk flash (4 GB).

Teraz instalator 10.10 wreszcie obsługuje btrfs, ale nie ma możliwości włączenia compressflagi w nim. Czy mogę w jakiś sposób oszukać instalatora? W przypadku starszych wersji i uzyskania LUKS można wstępnie zamontować partycje. Czy jest też możliwe łatwe monkeypatch, aby włączyć preinstalację btrfs + kompres?


Czy wypróbowałeś alternatywny dysk (instalator w trybie tekstowym)?
Oli

@Oli: Właśnie wypróbowałem teraz. -Alternatywny instalator Debiana jest bardziej rozbudowany. Ale wyświetla tylko standardowe flagi systemu plików (noatime, nodev, noexec). Zapobiega ustawianiu opcji specyficznych dla btrfs, takich jak compresslub ssd. Brak szczęścia.
mario

Odpowiedzi:


2

Natknąłem się na ten wątek, ponieważ chciałem zainstalować Linux Mint Debian Edition na dysku flash i zainstalować na skompresowanym pliku btrfs od samego początku. Chociaż te rozwiązania nie miały bezpośredniego zastosowania do osiągnięcia moich wyników, wykorzystałem niektóre z tych informacji, aby osiągnąć swój cel.

Problem polegał na tym, że punkt formatowania instalatora i montowania partycji i rozpoczęcia kopiowania plików znajdował się tuż obok siebie, ponieważ nie byłem w stanie wykonać opcji „remount” wspomnianej przez innych powyżej.

Wersja LMDE skryptu instalatora była w języku python (usr / lib / live-installer / installer.py). Nie jestem pewien, czy tak samo jest z Ubuntu, ale jeśli tak, będzie to miało bezpośrednie zastosowanie. To pozwoliło mi edytować skrypt i dodać tę linię bezpośrednio pod linią, która pierwotnie zamontowała partycję dla „/”

os.system("mount -o remount,compress /dev/sda3 /target -t btrfs")

of coures, „/ dev / sda3” będzie się różnić w zależności od urządzenia.

Rozumiem, że jest to forum Ubuntu, ale tak jak powiedziałem, wymyśliło wyszukiwanie i to rozwiązanie byłoby bezpośrednio odpowiednie, gdyby instalator był oparty na pythonie. W każdym razie wszyscy jesteśmy tutaj Debianem, prawda !?


10

Łatwiejszym sposobem na to jest zmiana mountpoleceń środowiska na żywo.

  1. Uruchom jak zwykle sesję na żywo.
  2. Przenieś mountplik wykonywalny w inne miejsce:

    sudo mv /bin/mount /bin/mount.bin
    
  3. Edytuj nowy plik za pomocą sudoedit /bin/mounti zapisz w nim następujący skrypt ( zmień opcje, jak chcesz; tutaj dodaliśmy compress):

    #!/bin/sh
    if echo "$@" | grep -q -- "-t btrfs"; then
        /bin/mount.bin "$@" -o compress
    else
        /bin/mount.bin "$@"
    fi
    

    Możesz także dopasować urządzenia blokowe, takie jak /dev/sda1zamiast -t btrfsi łańcuchy, elifaby użyć różnych opcji montowania dla różnych urządzeń i systemów plików.

  4. Skopiuj oryginalne uprawnienia do nowego skryptu:

    sudo chmod --reference=/bin/mount.bin /bin/mount
    
  5. Zainstaluj jak zwykle, a twoja partycja btrfs zostanie zamontowana z określonymi opcjami (tutaj, compress).

  6. Po zakończeniu instalacji, przed opuszczeniem środowiska na żywo, zmień /etc/fstabnowo zainstalowany system, tak aby pasował do określonych opcji, aby używał tych samych opcji w nowych butach.

Użyłem: defaults,noatime,compress-force=lzo,space_cachejako opcji montowania.

Działa to z kwantowym dziennym (30/6/12).

Użyłem partycji btrfs as /i partycji wymiany.

Kredyty trafiają do tego postu (w tym wątku ), który z kolei cytuje ten post na blogu .


Chciałbym móc to potroić, ponieważ teraz już trzeci raz zapominam, jak to zrobić właściwie, i nadal intensywnie googluję. Chociaż oczywiście musisz używać sudo w większości punktów, co może nie być oczywiste dla mniej doświadczonych użytkowników. Ale fajnie!
DanielSmedegaardBuus

4

Zaraz po zainstalowaniu partycji przez instalatora możesz spróbować przełączyć się na powłokę i wykonać mount -o remount,compress /target, to może zadziałać.


To wydawało się działać! (Chociaż spieprzyłem coś jeszcze ...) Ale wymagało to pełnego polecenia mount -o remount,compress,ssd /dev/mapper/target /target -t btrfsz urządzeniem źródłowym.
mario

Najdoskonalszy. Po kilku testach sztuczka z remontem działała bezbłędnie. Zastosowano 1,2G zamiast 2,6G, zauważalny wzrost prędkości.
mario

2

Począwszy od 13.04 (Raring Ringtail), powinieneś być w stanie zainstalować na woluminie btrfs bez kompresji, a następnie skompresować każdy plik na całym woluminie po uruchomieniu nowej instalacji.

Zgodnie z dokumentacją Oracle można kompresować istniejące pliki w istniejącym systemie plików, defragmentując je za pomocą opcji -clzo.

sudo btrfs filesystem defragment -clzo /

Przekazywanie go pojedynczym ukośnikiem informuje btrfs o defragmentacji wszystkich plików i katalogów w woluminie głównym.

Zobacz: http://docs.oracle.com/cd/E37670_01/E37355/html/ol_use_case1_btrfs.html

Gdy skończysz, dodaj kompresję = lzo (lub kompresję = zlib, jeśli wolisz, ale lzo jest zalecane ze względu na szybkość) do linii woluminu w / etc / fstab i uruchom ponownie, aby wszystkie dalsze pliki zapisane na dysku zostały skompresowane.


2

Nowsze dystrybucje używają busyboxwiększości poleceń, w tym mount. W tych wydaniach /bin/mountjest dowiązaniem symbolicznym, /bin/busyboxa dowiązanie symboliczne musi nosić nazwę „mount”, a nie „mount.bin”, aby działało poprawnie. W związku z tym powyższą odpowiedź Mskje można zmienić na następującą:

  1. Uruchom normalnie sesję na żywo.
  2. sudo rm /bin/mount
  3. sudo mkdir /bin/orig
  4. sudo ln -s /bin/busybox /bin/orig/mount
  5. sudo nano /bin/mount - utworzy to nowy skrypt.
  6. Skopiuj to do skryptu i zapisz (zmień opcje, jak chcesz, tutaj skompresuj):

    #!/bin/sh  
    if echo $@ | grep "btrfs" >/dev/null; then  
        /bin/orig/mount $@ -o compress  
    else  
        /bin/orig/mount $@  
    fi
    
  7. sudo chmod 755 /bin/mount aby był wykonywalny.

  8. Zainstaluj normalnie, a twoja partycja btrfs zostanie zamontowana z określonymi opcjami (tutaj kompresuj).
  9. Po zakończeniu instalacji, przed opuszczeniem środowiska na żywo, zmień fstabnowo zainstalowany system, tak aby pasował do określonych opcji, aby używał tych samych opcji w nowych butach.

1

Ręczne wybieranie: / dev / sda1 jako btrfs dla / some ext? / boot trochę zamiany

W terminalu: sudo bash

Naciśnij zainstaluj

Naciśnij enter na linii terminalu: (sudo zrobione) mount -t btrfs -o remount, compress / dev / sda1 / target


1

Możesz uzyskać jedną lub wszystkie fajne nowe funkcje Btrfs, uruchamiając ręcznie komendę mkfs.btrfs . Alternatywny instalator ma możliwość w dowolnym momencie, aby powrócić do poprzedniego kroku wyboru. możesz tego użyć, po tym jak instalator utworzy btrfs, stwórz własne btrfs, a następnie uruchom instalator w poprzednim kroku, aby twój fs się przyzwyczaił.

  1. uruchom instalator aż do fazy partycji.
  2. pozwól mu zainstalować system podstawowy.

  3. alt-F2 przejdź do terminala i uruchom mkfs.btrfs - / dev / sdXY

  4. wróć do instalatora alt-F1
  5. naciśnij przycisk „Wróć”, a następnie wybierz ponownie opcję partycji. domyślnie nie będzie się ponownie formatować, więc możesz po prostu nacisnąć Kontynuuj. ponownie zainstaluje system podstawowy. powiedz „tak” ostrzeżeniu o braku ponownego formatowania.

  6. cieszyć się.


1

Udało mi się to, zastępując partycję ext4 na patyku skompresowaną partycją btrfs. Można to zrobić za pomocą innego komputera.

  1. Kopiowanie wszystkiego za pośrednictwem

    sudo cp -ar / ext4Partition / * / backupspace /
  2. Zastąp partycję używając gparted z btrfs one

  3. Zamontuj nową partycję za pomocą sudo mount mount -o compress / dev / yourdevice / btrfsPartition
  4. Skopiuj wszystko

    sudo cp -ar / backupspace / * / btrfsPartition /
  5. Zaktualizuj / btrfsPartition / etc / fstab do nowych identyfikatorów urządzeń i nowego typu partycji. Usuń opcję remount, ponieważ btrfs tego nie ma.
  6. zainstaluj ponownie moduł ładujący (np. przez BootRepair )

Uwaga: katalogi /btrfsParition, /ext4Partitioni /backupspacemogą być ustawione tak, jak chcesz.


0

Możesz po prostu dodać kompresję później. Otwórz /etc/fstabi edytuj linię dla głównego systemu plików. Dodaj compressdo opcji montowania takich jak to:

UUID=0c8e6d48-e6b3-425a-ab33-24205a9cb586 / btrfs defaults,compress 0 1

Teraz ponownie podłącz lub uruchom ponownie i nie zapominaj, że / boot nie może jeszcze żyć na btrfs, ponieważ GRUB2 go nie obsługuje.


2
O ile wiem, dodanie kompresji w fstab nie ma wpływu na istniejące pliki (które będą dużą częścią tego 4 GB SSD już po dodaniu go dopiero po instalacji!). Myślę, że tworzenie i montowanie partycji przed instalacją jest najlepszą opcją przy korzystaniu z live-CD.
JanC

Tak, dodanie opcji później nie kompresuje plików. Ostatnim razem zrobiłem pełną kopię zapasową pliku, potem zmieniłem flagi systemu plików, a potem wszystko nadpisałem. Bardzo nieporęczne. I po prostu tarczasami zapomina o kilku atrybutach plików, nie jestem pewien, czy zamiast nich użyłem pax czy rsync.
mario

Co jeśli po prostu zainstalujesz Ubuntu-minimal, a resztę zainstalujesz później?
mniess,

0

Zawsze możesz postępować zgodnie ze starożytnym chińskim przysłowiem:

Jeśli nie podoba ci się to, co robi program instalacyjny, podziel go na partycje i powiedz instalatorowi, aby zainstalował się na tych partycjach.


Kim mam kwestionować stare chińskie przysłowia? Ale czy nowy instalator 10.10 honoruje zamontowane / docelowe? Gdyby nalegał na ponowne zamontowanie, wszystkie moje cenne ręczne partycjonowanie poszłyby na marne.
mario

Przechodzić. Gdybym nadal miał ISO, przetestowałbym to w VirtualBox, ale znowu, myślę, że prawdopodobnie będziesz mieć więcej szczęścia z alternatywnym instalatorem (zwykle lepiej reaguje na ingerencję użytkownika)
Oli

Po prostu dał mi kolejny wir. Obaj instalatorzy są niezadowoleni. Ręczne partycjonowanie wciąż jest rozwiązaniem dla LUKS, ale opcje ręcznego montowania nie są dostępne dla btrfs. Kreator instalacji alternatywnej wydaje się mniej zadowolony z niestandardowych opcji, ale przynajmniej możesz zobaczyć, co się dzieje. Instalator pulpitu odmontowuje cel dwa lub trzy razy.
mario
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.