Przeczytałem, że musisz umieścić partycję wymiany na HDD zamiast na SSD.
Moje pytania są następujące:
- Kiedy i jak „sprawdzanie” odbywa się przez dystrybucję (lub coś innego) w celu znalezienia partycji wymiany?
- Czy dzieje się to podczas uruchamiania?
- Sprawdza tylko wszystkie dostępne dyski i szuka partycji z flagą „swap”?
- Co się stanie, jeśli istnieje kilka takich partycji?
- Ponadto, ile partycji wymiany muszę mieć, jeśli uruchomię na przykład dwie różne dystrybucje na tym samym dysku, powiedzmy Fedora i Ubuntu?
Odpowiedzi:
Statycznie skonfigurowana przestrzeń wymiany (typ używany przez prawie każdą dystrybucję) jest konfigurowana
/etc/fstab
tak jak systemy plików.Typowy wpis wygląda mniej więcej tak:
Możesz także zobaczyć jedno z nich
discard
lubnofail
podać je w polu flagi (czwarte pole). Każda taka linia odpowiada jednemu obszarowi wymiany (nie musi to być partycja, możesz mieć pliki wymiany, a nawet całe dyski wymiany).W niektórych naprawdę specyficznych przypadkach zamiast tego możesz dynamicznie skonfigurować przestrzeń wymiany, chociaż jest to raczej rzadkie, ponieważ może powodować problematyczne zachowanie związane z zarządzaniem pamięcią. W takim przypadku konfiguracja jest obsługiwana całkowicie przez komponent przestrzeni użytkownika, który tworzy i włącza pliki wymiany w razie potrzeby w czasie wykonywania.
O ile potrzebujesz, to skomplikowane pytanie, na które należy odpowiedzieć, ale liczba różnych dystrybucji Linuksa, które planujesz uruchomić, nie ma na to wpływu, chyba że chcesz być w stanie uruchomić jedną dystrybucję, podczas gdy inna jest w stanie hibernacji (a ty prawdopodobnie nie chcę tego robić, ponieważ jest to naprawdę łatwy sposób zepsuć system).
Kiedy uruchomisz instalator dla prawie każdej dużej dystrybucji (w tym Fedory, OpenSUSE, Linux Mint, Debian i Ubuntu), wykryje on istniejące partycje wymiany w systemie i doda je do konfiguracji dystrybucji, którą jesteś instalowanie (chyba że wybierzesz ręczne partycjonowanie), aw większości przypadków spowoduje to rozsądną konfigurację systemu.
Poza tym osobiście sugerowałbym unikanie posiadania wielu partycji wymiany, chyba że mówisz o systemie serwera z dużą ilością dysków, a nawet wtedy naprawdę musisz wiedzieć, co robisz, aby skonfigurować, aby działał dobrze .
źródło
/tmp
partycji / katalogu). Prawdopodobnie w takim przypadku lepiej mieć maszyny wirtualne ...systemctl --all | grep swap
, odzyskam dwa wyniki.dev-disk-by\x2duuid-1c692cc4\x2df942\x2d4478\x2dad0f\x2d266b7484273a.swap
iswap.target
oba są AKTYWNE = nieaktywne, a SUB = martwe . Jak sprawić, aby mój system korzystał z obszaru wymiany?… Oba są obecnie systemowymi systemami operacyjnymi.
Co dzieje się w systemowych systemach operacyjnych
natywny mechanizm
Systemd stosuje różne rodzaje jednostek.
.mount
pliki jednostek nakazują mu montowanie woluminów..swap
pliki jednostek instruują go, aby poinformował jądro o partycjach wymiany. (.service
pliki jednostek instruują go, jak uruchamiać usługi. itd.). Są to natywne mechanizmy systemowe. Aby je uchwalić, systemd sam odrzuca procesy potomne, które wykonują odpowiednie wywołania systemowe.Jeśli użyjesz
systemctl
polecenia (z--all
) w takim systemie operacyjnym, powie ci on o załadowanych.swap
jednostkach. Na przykład:Powie ci również o
.mount
jednostkach.Administrator systemu może faktycznie napisać takie
.swap
pliki jednostki ręcznie, tak jak XE można napisać.service
,.socket
i inne pliki jednostkowe ręcznie. systemd sam szuka plików jednostkowych w systemie plików. Są ich rodzimym mechanizmem.Można nawet uzyskać systemd, aby pokazać ci, co jest w tych plikach jednostkowych i gdzie w systemie plików można je znaleźć:
automatycznie generowane pliki jednostek
Można je pisać ręcznie. Zazwyczaj jednak takie
.mount
i.swap
jednostkowe pliki są automatycznie generowane przez programy znane jako generatory . Dwa takie generatory tosystemd-fstab-generator
isystemd-gpt-auto-generator
. Oba działają na początku procesu ładowania początkowego i w odpowiedzi nasystemctl daemon-reload
polecenie, i (jak widać powyżej) generują cały ładunek plików jednostkowych do nieudokumentowanego podkatalogu w/run/systemd/
. systemd sam używa tylko tych wygenerowanych plików jednostkowych .Poprzedni generator czyta
/etc/fstab
, rozpoznając kilka systemowych rozszerzeń tego formatu pliku. Jak zauważył w komentarzu odpowiedzi, tradycyjnie partycje wymiany mają Rodzaj montażu nasw
i tak będzie znaleźć, że inne systemy operacyjne rozpoznają rekordy swapowych w tej tabeli. Ale oprogramowanie dla Linuksa zastosowało alternatywną metodę rozpoznawania typu VFS , szukając goswap
jako typu VFS.systemd-fstab-generator
nie jest tutaj wyjątkiem i tak interpretuje/etc/fstab
przy konwersji na natywne mechanizmy.Ten ostatni generator przetwarza tablicę partycji EFI, która znajduje się na tym samym dysku, na którym znajduje się partycja systemowa EFI, szukając pozycji tablicy partycji EFI, które mają różne dobrze znane GUID typu partycji . Jednym z tych identyfikatorów GUID jest konwencjonalny identyfikator GUID przypisany do partycji wymiany systemu Linux; a jeśli
systemd-gpt-auto-generator
znajdzie partycję z tym GUID (który spełnia kryteria podane w systemd doco), utworzy.swap
dla niej jednostkę; w ogóle nie jest/etc/fstab
zaangażowany .Oczywiście proces ten ma wiele skutków ubocznych. Na przykład, ponieważ
/etc/fstab
nie ma klucza podstawowego do tabeli, rekordy mogą mieć zduplikowane pola „spec” i „file” (tj. „What” i „where”). Jednak w natywnym mechanizmie systemowym pole „plik” (tzn. „Gdzie”) jest unikalnym kluczem dla.mount
jednostek, osadzonym w nazwach jednostek. Żadne dwie.mount
jednostki nie mogą tego udostępnić. W przypadku.swap
jednostek pole „spec” (tj. „What”) jest unikatowym kluczem dla jednostek. Żadne dwie.swap
jednostki nie mogą tego udostępnić. Tak więc nie wszystkie rekordy/etc/fstab
są koniecznie konwertowane na natywne mechanizmy i będą działać, zwłaszcza jeśli ludzie robią rzeczy takie jak lista tego samego punktu montowania dla dwóch różnych celów lub lista tej samej partycji wymiany na dwa różne sposoby.Podobnie, ponieważ zostało to przetłumaczone
/etc/fstab
na mechanizm natywny, a mechanizm natywny systemd ma inne sposoby aktywacji jednostek , zachowanie jest nieco inne niż w niesystemowych systemach operacyjnych..mount
Jednostka będzie domyślnie być automatycznie aktywowanysystemd-udevd
, nawet po bootstrap, w odpowiedzi na pojawienie zamontowanego urządzenia pamięci masowej. Lub może być wymieniony jako aWants=
lubRequires=
niektóre.service
lub.socket
jednostki, co oznacza, że zostanie (ponownie) aktywowany, gdy będą. Jest nawetRequiresMountsFor=
.programy instalacyjne i sposób systemowy
Tradycyjnie programy instalacyjne systemu operacyjnego i administrator systemu po ponownej konfiguracji systemu zapisywali
sw
wpisy/etc/fstab
. I w ten sposób natywny.mount
i.swap
jednostki są generowane automatycznie. Narzędzie instalacyjne / konfiguracyjne „wie”, gdzie został umieszczony plik wymiany, ponieważ w interfejsie użytkownika administrator systemu dokonał pewnego wyboru i zapisał/etc/fstab
pasującą wartość. Czasami ten wybór polega na tym, że musisz zrobić ze mnie partycję wymiany w ramach instalacji. ; czasami jest to po prostu użyj partycji wymiany, którą znalazłeś już na płycie. (instalatorzy również patrzą na typy partycji).Ale systematyczni ludzie mają pomysł na systemy operacyjne, które automatycznie konfigurują się z zasadniczo pustego
/etc
drzewa, tak zwanych systemów bezstanowych , i na tym właśnie polegają mechanizmy takie jak generator odczytujący tablicę partycji EFI. W planie ludzi systemowych nie ma żadnych/etc/fstab
danych konfiguracyjnych, a nawet nie ma w nich żadnych trwałych danych konfiguracyjnych/etc
, a wszystkie te informacje są wywnioskowane z zawartości tabeli partycji na dysku , przy każdym ładowaniu i każdymsystemctl daemon-reload
. Obecnie promują programy instalacyjne systemu operacyjnego, niż nie piszą/etc/fstab
.Oczywiście w tradycyjnym schemacie każdy system operacyjny może mieć swoją prywatną partycję wymiany i nie dotykać nawzajem partycji wymiany. I rzeczywiście, jeśli używasz hibernacji do dysku za pomocą partycji wymiany i spodziewasz się, że będziesz w stanie uruchomić wiele systemów operacyjnych podczas hibernacji ( co jest bardzo złym pomysłem, ponieważ bardzo łatwo jest spowodować uszkodzenie systemu plików w ten sposób ), to będzie niezbędny.
W schemacie systemowym, nawet jeśli system operacyjny nie jest jeszcze taki, jak ludzie systemowi go sobie wyobrażają i jest „bezstanowy”, działają wyżej wymienione generatory; i dlatego wszystkie partycje wymiany (na dysku ESP / root) z wymaganym typem partycji są automatycznie stosowane przez wszystkie systematyczne systemy operacyjne. Ponieważ będą udostępniać wszystkie automatycznie wykryte partycje wymiany, tak naprawdę nie trzeba tworzyć jednej partycji wymiany na zainstalowany system operacyjny.
Dalsza lektura
systemd.swap
. systemowe strony podręcznika . freedesktop.org.systemd-fstab-generator
. systemowe strony podręcznika . freedesktop.org.systemd-gpt-auto-generator
. systemowe strony podręcznika . freedesktop.org.źródło
Historycznie partycja wymiany jest określana
/etc/fstab
za pomocą wpisu typuswap
. Podczas rozruchu procesy uruchamiania odczytują ten plik i wpychają tę konfigurację do jądra.Przykładem wpisu
/etc/fstab
jest:Nie znam sposobu
systemd
zarządzania zamianą, ale wierzę, że wynik końcowy jest taki sam: proces przestrzeni użytkownika jest świadomy tego, jaka przestrzeń jest przydzielona do wymiany, a proces przestrzeni użytkownika informuje jądro.źródło
/etc/fstab
podstawiesw
typu montowania, a nieswap
typu VFS.systemd-gpt-auto-generator
.Wszystkie pozostałe odpowiedzi wspominają, jak wskazać system plików wymiany podczas rozruchu.
Należy jednak dodać kilka punktów do innych odpowiedzi:
mkswap
;swapon
;swapoff
.źródło