Jak dodać swap po instalacji systemu?

153

Nie utworzyłem partycji wymiany podczas instalacji Ubuntu. Później zwolniłem trochę miejsca i utworzyłem partycję wymiany. Teraz po każdym uruchomieniu ręcznie otwieram, gpartedaby kliknąć partycję wymiany prawym przyciskiem myszy, aby włączyć opcję „zamiany”.

Jak mogę automatycznie włączyć partycję wymiany podczas rozruchu?

Ponadto, jeśli nie utworzyłem partycji wymiany, jakie są moje inne opcje?

Xiota
źródło

Odpowiedzi:

132

Musisz edytować /etc/fstabi dodać nową partycję wymiany.

sudo nano /etc/fstab

Musisz dodać linię, która wygląda

UUID=735b3be3-779c-4d21-a944-b033225f3ab4 none   swap    sw      0       0

i otrzymujesz UUID za pomocą polecenia

sudo blkid /dev/sda3

(zastąp /dev/sda3odpowiednią nazwą urządzenia).

Związane z:

użytkownik4124
źródło
Potrzebuję pomocy do / etc / fstan. Mam wynik: - bash: / etc / fstab: Odmowa
dostępu
Użyj sudo gedit / etc / fstab
3
Aby znaleźć odpowiednią nazwę urządzenia: sudo fdisk -l(z: askubuntu.com/questions/182446/... ), a następnie poszukaj Type: Linux swap.
NumesSanguis,
1
sudo blkid /dev/sda4nic dla mnie nie wypisuje (sda4 to nowo utworzona partycja z kodem 82h, fdisk mówi, że to partycja „Linux swap / Solaris”).
Egor Skriptunoff,
1
@ elvis.dukaj można również używać nazwy urządzenia. Zasadniczo wyrażają dwie różne rzeczy. Jedna mówi, że należy użyć woluminu z dokładnie tym UUID (coś, co zmieni się przy innym mkswapuruchomieniu), a druga mówi, że należy użyć partycji podstawowej numer 3 dysku /dev/sda. Niektórzy wolą identyfikatory UUID, ponieważ nawet jeśli przypisanie nazw urządzeń ulegnie zmianie, identyfikatory UUID pozostaną takie same. Właśnie dlatego różnica ma znaczenie. Ale jeśli masz pewność, że nie partycjonujesz dysku, /dev/sda3powinieneś być równie bezpieczny w użyciu.
0xC0000022L
106

Aby utworzyć partycję wymiany po instalacji, utwórz pustą partycję. Nie powinien mieć żadnych dziur. Następnie możesz sformatować tę partycję za pomocą:

sudo mkswap /dev/sdX

zastępując /dev/sdXze swojej partycji. Zamontuj tę partycję jako zamienną z

sudo swapon -U UUID

gdzie UUID to twój, /dev/sdXjak odczytano z tego:

blkid /dev/sdX

Powiąż swoją nową wymianę /etc/fstab, dodając ten wiersz:

UUID=xxx    none    swap    sw      0   0

Jeśli chcesz użyć wymiany do hibernacji, musisz zaktualizować identyfikator UUID /etc/initramfs-tools/conf.d/resumeo tę zawartość RESUME=UUID=xxx. Nie zapomnij $ sudo update-initramfs -u.

Aby zakończyć: można również utworzyć plik wymiany, jeśli nie masz wolnej partycji. Ta odpowiedź daje wyobrażenie o tym, jak utworzyć plik wymiany i włączyć go podczas rozruchu.

Takkat
źródło
W tej chwili mam dysk SSD z dwiema partycjami, ale chciałbym zrobić trzecią. Jeśli mam podstawową partycję ext4, która przechowuje system operacyjny i moje pliki, czy mogę to wykorzystać do odklejenia 2 GB na nową partycję? Ta partycja podstawowa ma więcej niż wystarczającą ilość wolnego miejsca, więc nie powinno to stanowić problemu.
dustin
2
Zobacz, jak gpartedzmienić rozmiar partycji.
NumesSanguis,
54

Jeśli nie chcesz lub nie wiesz, jak utworzyć partycję wymiany, możesz utworzyć plik wymiany, który będzie działał w taki sam sposób jak partycja. Oto kroki (za pomocą terminala):

  1. Utwórz pusty plik (1K * 4M = 4 GiB).

    sudo mkdir -v /var/cache/swap
    cd /var/cache/swap
    sudo dd if=/dev/zero of=swapfile bs=1K count=4M
    sudo chmod 600 swapfile
    
  2. Konwertuj nowo utworzony plik na plik przestrzeni wymiany.

    sudo mkswap swapfile
    
  3. Włącz plik dla stronicowania i zamiany.

    sudo swapon swapfile
    

    Zweryfikuj przez: swapon -slub top:

    top -bn1 | grep -i swap
    

    Powinien wyświetlać taką linię jak: KiB Swap: 4194300 total, 4194300 free

    Aby wyłączyć, użyj sudo swapoff swapfilepolecenia.

  4. Dodaj go do fstabpliku, aby był trwały przy następnym uruchomieniu systemu.

    echo "/var/cache/swap/swapfile none swap sw 0 0" | sudo tee -a /etc/fstab
    
  5. Ponownie przetestuj plik wymiany podczas uruchamiania przez:

    sudo swapoff swapfile
    sudo swapon -va
    

    Uwaga: powyższe polecenia ponownie sprawdzają składnię fstabpliku, w przeciwnym razie Linux nie uruchomi się poprawnie.

kenorb
źródło
13
Dziękujemy za jedyną odpowiedź, która używa pliku wymiany, a nie partycji wymiany. W takim przypadku nie mogłem utworzyć partycji. Polecenia działały świetnie.
Sarel Botha
2
Dla tych, którzy potrzebują większej przestrzeni wymiany, zwiększ liczbę = 4 M, do XM, dla przestrzeni wymiany X GiB. Na wypadek, gdyby ktoś to przegapił.
saurabheights
Nie jestem pewien co do kroku 5. Dlaczego miałbym wyłączyć swap, aby przetestować?
Raffi Khatchadourian
@RaffiKhatchadourian Ponowne testowanie na końcu pomaga dwukrotnie sprawdzić składnię fstabpliku (względem literówek), w przeciwnym razie Linux może nie uruchomić się poprawnie, powodując poważne problemy z uruchamianiem, szczególnie na zdalnych serwerach.
kenorb
1
Ach, teraz rozumiem. Musisz to zrobić przed ponownym uruchomieniem. Zostałem wyrzucony podczas startu.
Raffi Khatchadourian
13

Istnieje graficzny sposób, aby to zrobić za pomocą gparted.

Uruchom Gparted z:

sudo gparted

Jeśli nie masz go zainstalować, możesz go zainstalować za pomocą

sudo apt-get install gparted

Po uruchomieniu gparted:

  1. Przydziel partycję, tak jak klikniesz prawym przyciskiem myszy nieprzydzielony blok i klikniesz new
  2. Sformatuj partycję jako linux-swap
  3. Kliknij partycję prawym przyciskiem myszy i kliknijswapon

Gdy skończysz, obok nazwy partycji powinna znajdować się ikona klucza

Charles V.
źródło
zdecydowanie najprostsza odpowiedź
Shobi
1
Aby było trwałe, nadal musisz edytować plik fstab jak w odpowiedzi @ user4124
Madura Pradeep
1
Pytanie już mówi, że to robią.
Chai T. Rex,
1
To wcale nie odpowiada na pytanie.
mook765
@ mook765, pytanie brzmi: „Jak dodać swap po instalacji systemu?”. To doskonale odpowiada na to pytanie.
Tayler
3

z linux.com po prostu utwórz plik wymiany, ponieważ jest to bardziej elastyczne i możesz dynamicznie dostosowywać liczbę i ilość posiadanych magazynów wymiany. Pozwala to również na przeniesienie partycji wymiany z dysku systemowego, co przyspiesza działanie systemu. Ponadto, jeśli korzystasz z kilku przestrzeni wymiany, dostosuj ich priorytet użycia do tej samej wartości, więc do pisania w nich używa się round-robin, co pozwala uzyskać jeszcze większą poprawę prędkości.

ps użyłbym UUID zamiast nazwy urządzenia, ponieważ łatwo jest zmienić kolejność urządzeń, jeśli przypadkowo pozostawisz pamięć USB w gnieździe USB i po prostu wyjmujesz i podłączasz ponownie kable sata - nie musisz się martwić o to, który dysk jest podłączony gdzie.

Osis
źródło
To była najbardziej pomocna odpowiedź, ponieważ nie wymaga ponownego partycjonowania dysku. Szkoda, że ​​Ubuntu domyślnie nie tworzy wymiany podczas instalacji na nowym komputerze!
Ernie
2

Musisz mieć zdefiniowany system plików wymiany w / etc / fstab. Powinien zawierać wiersz podobny do

UUID=67682d1b-a1d8-4377-a3dd-67340c141619 none            swap    sw              0       0

Oczywiście musisz zastąpić wartość UUID identyfikatorem swojego urządzenia.

Adam Byrtek
źródło
jak mogę to dostać?
3
Zamiast tego możesz użyć nazwy urządzenia, na przykład / dev / sda1 (bez identyfikatora UUID).
Adam Byrtek,
2

(zamień „x” w sdax na numer partycji wymiany, np .: sda5)

zamień „xxx” na numer UUID, np .: 67682d1b-a1d8-4377-a3dd-67340c141619)


su (podaj hasło, aby uzyskać uprawnienia roota)

blkid / dev / sdax (get UUID) mkswap / dev / sdax (format partycji wymiany) swapon -U xxx

nano / etc / fstab (edytuj fstab) UUID = xxx brak zamiany sw 0 0 (wprowadź i zapisz ten tekst, aby zamiana stała się trwała) (następnie zamknij fsantab)


nano /etc/initramfs-tools/conf.d/resume (utwórz plik „resume” i zapisz ten tekst, aby użyć hibernacji / resume) RESUME = UUID = xxx (ctrl + x, aby zamknąć nano) -> (y, aby zapisać)

uruchom ponownie maszynę

zaloguj się, a teraz możesz przetestować hibernację / wznowić

wmameer
źródło
2

To obszerny samouczek na temat tworzenia napędu RAM dla Ubuntu. Niestety .. zrzuty ekranu nie pojawiają się w tym poprzez wycinanie i wklejanie. Później je dodam, ale nie są potrzebne.

Pierwszą rzeczą, którą musisz zrobić, to stworzyć miejsce dla napędu RAM. Mam system podwójnego rozruchu z dyskiem twardym 32 GB. Moje Ubuntu jest faktycznie zainstalowane na karcie SD (tak, prawdziwa instalacja, a nie Live Casper). Moja zamiana była również na karcie SD i może się szybko zużyć. Poszukałem sposobu zmiany wymiany i znalazłem ten artykuł i nie podobały mi się odpowiedzi, więc zrobiłem samouczek podczas wprowadzania zmian.

Jeśli po prostu chcesz zwiększyć lub zmniejszyć partycję wymiany, musisz tylko zwiększyć lub zmniejszyć partycję za pomocą swojego ulubionego menedżera partycji. Ubuntu już wie, dokąd iść i jest niezależny od wielkości. Jeśli chcesz zmienić lokalizację lub dokonać nowej wymiany, czytaj dalej. Pierwszą rzeczą, którą musisz zrobić, to zmniejszyć dysk twardy, aby zapewnić miejsce na wymianę. Jeśli zmniejszasz dysk z systemem Windows, lepiej użyj systemu Windows do zmniejszenia dysku (zna swoje własne rzeczy). Jeśli korzystasz z czystego systemu Ubuntu, spróbuj zmienić rozmiar przy użyciu działającego Ubuntu USB.

Instrukcje zmiany rozmiaru systemu Windows:

  1. Wykonaj kopię zapasową systemu i defragmentuj dysk.
  2. Kliknij prawym przyciskiem myszy pasek startowy.
  3. Wybierz Zarządzanie dyskami
  4. Kliknij prawym przyciskiem myszy WŁAŚCIWY NAPĘD
  5. Wybierz Zmniejsz.
  6. Wpisz prawidłową kwotę.

Jeśli jesteś w Ubuntu. Upewnij się, że korzystasz z narzędzi Ubuntu. Aby zakończyć alokację, użyję rozruchowego Live USB systemu Ubuntu, który obejmuje GParted. Live USB to najlepszy sposób na korzystanie z Gparted z dowolnego powodu i powinieneś mieć USB od pierwszej instalacji lub zrobić taki, aby był pod ręką.

Pisanie w 2000 roku było niedozwolone, ponieważ nie było wystarczająco dużo miejsca, aby to zrobić, mimo że „zdefragmentowałem” dysk (nie sądzę, aby system Windows naprawdę go zdefragmentował). Z pewnymi eksperymentami pozwolono mi na 1000. Potem spróbowałem ponownie 1000 i zadziałało. Powinienem podziękować mojemu nauczycielowi matematyki ze szkoły podstawowej za tego jednego bardziej niż programistom MS Windows. Zostało mi 1,95 GB, co jest wystarczająco blisko dla mojej matematyki w szkole podstawowej.

Sformatuj partycję

Teraz jestem gotowy, aby gparted sformatował tę przestrzeń jako właściwy dysk wymiany. Jeśli korzystasz z systemu Windows i przełączasz się między Ubuntu i Windows, UPEWNIJ SIĘ, ŻE PRZYCISKałeś PRZYCISK SHIFT, klikając „Zasilanie” i „Zamknij”. Jest to bardzo ważne, zwłaszcza gdy masz problemy z danymi dysku „C” w innym systemie operacyjnym. Jeśli korzystasz z podwójnego uruchamiania, powinieneś już wiedzieć, że system Windows fałszywie wyłącza się w normalnych okolicznościach. Niektóre osoby wyłączyły „Szybki rozruch”. Nie mam tego wyboru w swoim systemie (Windows 10) i muszę używać klawisza Shift dzięki mojemu przyjacielowi Google. Jeśli uruchamiasz się z działającym USB i nie możesz zamontować napędu „C” (klikając na niego), oznacza to, że nie zamknąłeś się całkowicie. Załaduj ponownie okno i zamknij ponownie za pomocą klawisza Shift.

Teraz jesteś w trybie Ubuntu Live i przeczytaj poniżej:

Jeśli jesteś czystym Ubuntu i nie zmniejszył się w systemie Windows. Użyjesz opcji Zmień rozmiar w gParted. Jeśli już zmniejszyłeś dysk, nie rób kroku zmiany rozmiaru. Możesz wpisać GParted na pasku Dash Dash i dość szybko pobrać aplikację. Kliknij prawym przyciskiem myszy dysk, którego rozmiar chcesz zmienić.

Teraz sformatujemy nieprzydzielone miejsce jako dysk podzielony na partycje:

Przed:

Nie wiedziałem, co robić, więc spojrzałem na moją poprzednią pamięć Ram Drive na karcie SD. Jest sformatowany jako Linux Swap. Więc sformatowałem nowy przydział, który ostatnio skurczyłem jako Linux Swap.
Powiedziałem OK partycji podstawowej i ostrzeżeniu i zadziałało!

Formatowanie partycji

Po formacie i nowej partycji

To przypadek, że sdzostała wywołana stara partycja wymiany na mmblk1p5nowej, a także nowa p5z mmblk0przodu. Twój może być p6 lub p7. Nie martw się

Jest mmblk0to dysk fizyczny, a p to partycja na tym dysku fizycznym. I mmblk01to jest inny dysk fizyczny itp. (To jest moja karta SD). Zanim wykonałem jakąkolwiek pracę, ponownie otworzyłem Windows, aby upewnić się, że Windows nadal się uruchamia. Nie musisz wykonywać tego kroku, jeśli jesteś leniwy lub na czystej maszynie z Ubuntu. Gdyby złamał system Windows, prawdopodobnie wyczyściłbym system Windows i dokonał nowej instalacji Ubuntu na tym dysku (również z wymianą). Gdybym zepsuł mój system, nie musiałbym wykonywać żadnych dalszych kroków, ponieważ mogę przydzielić swap nowej instalacji. Wszystko poszło dobrze i system Windows uruchomił się. Teraz możesz zobaczyć nową partycję w menedżerze dysków Windows: (Kliknij prawym przyciskiem myszy pasek startowy, aby uzyskać zarządzanie dyskami)

Teraz dołącz Swap do procedury uruchamiania

Poprzednie odpowiedzi na to pytanie faktycznie zawierały polecenia swapon / off, które nie są potrzebne i mogą być złożone. Wszystko, co musisz zrobić, to znaleźć odpowiedni plik i skierować swap na nową partycję. Ponownie, jeśli zmieniłeś tylko rozmiar partycji, nie musisz nic robić. Jest już skonfigurowane, aby znaleźć partycję. Rozmiar zostanie wykonany automatycznie.

Jeśli zmieniłeś partycję lub dokonujesz pierwszej wymiany, przeczytaj poniżej:

Pozwól, że ci powiem, że robię to po raz pierwszy. Nie jestem maniakiem UNIXa i wolę narzędzia GUI. Uczę się i trzymam kciuki podczas tworzenia tego samouczka. Jak dotąd wszystko poszło dobrze. W katalogu głównym systemu znajduje się katalog o nazwie itp. Wewnątrz tego katalogu znajduje się plik o nazwie fstab(bez rozszerzenia). Będziesz musiał edytować ten plik z uprawnieniami superużytkownika „su”. Zanim to zrobimy, potrzebujemy UUID nowej partycji wymiany utworzonej za pomocą Live USB. Wpisz sudo su Teraz jesteś w trybie superużytkownika. Możesz zrobić wszystko (w tym wyczyścić własne życie).

Wpisz blkidi wyszukaj identyfikator UUID nowej partycji wymiany. Zobaczyłem mój poniżej i podkreśliłem go:

Nie zwracaj uwagi na PartUID.

Teraz inni powiedzą typ:

sudo gedit /etc/fstab

Jednak próbowałem tego i nie znalazłem odpowiedniego pliku (proszę o komentarze).

Więc właśnie wpisałem gedit i otworzyłem go w kapryśny sposób GUI (Sukces!). Ponieważ byłem już w trybie superużytkownika (sudo su), mam uprawnienia roota, aby robić WSZYSTKO w Gedit, w tym zapisywać plik po jego zmianie. Wspaniale! Przed zmianą lub uszkodzony coś, zapisz fstab jako kopii zapasowej o nazwie ... fstab.bak.

Wykonaj kopię zapasową za pomocą kapryśnego interfejsu GUI, wybierz znajomy „Zapisz jako” i dodaj „bak” do pliku fstab.bak. Sprawdź, czy jest tam z rozszerzeniem .bak. Geekowie powiedzą ci, żebyś użył polecenia terminal cp, ale my nowicjusze nie możemy znaleźć pliku w terminalu, aby dostać się tak daleko w pierwszej kolejności. Tak jak każdy edytor tekstu, po poleceniu „zapisz jako” twój bieżący plik jest teraz fstab.bak. Otwórz prawdziwy, który miałeś wcześniej, a następnie zamknij plik kopii zapasowej. Dwukrotnie sprawdź, czy edytujesz rzeczywistą fstabwersję bez rozszerzenia. Jeśli edytujesz plik kopii zapasowej, po ponownym uruchomieniu nic się nie stanie, a kopia zapasowa nie będzie prawdziwą kopią zapasową oryginału.

Mój oryginalny fstabplik wygląda następująco:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/mmcblk1p6 during installation
UUID=a611601a-6ea8-4e34-9859-42a2470cac29 /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/mmcblk0p1 during installation
UUID=00F2-C0CE  /boot/efi       vfat    umask=0077      0       1
# swap was on /dev/mmcblk1p5 during installation
UUID=8fb20159-62e4-41a3-8550-791c7a66c328 none            swap    sw              0       0

Ostatni wiersz (zrobiłem dla ciebie czerwony), zawiera oryginalne informacje o zamianie, które są prawdopodobnie używane podczas uruchamiania. Z poprzedniego polecenia blkid mogłem zobaczyć mój nowy identyfikator UUID dysku. Skopiuj to wyrażenie, podświetlając tekst w terminalu, a następnie klikając prawym przyciskiem myszy i wybierając kopię. Wklej tę frazę do innego osobnego edytora bez suuprawnień jako notesu (możesz używać Libre Office, a maniacy mogą używać nano). Ten krok pozwala łatwo uzyskać odpowiedni tekst bez cudzysłowów, dzięki czemu można łatwo wkleić go do fstabpliku. Chcesz jak najmniej zmienić ten plik.

New UUID
UUID="709ea197-e6fb-428b-9c1f-4b258452b10c"

Tak więc mój nowy UUID jest wymieniony na czerwono powyżej. Wszystko, co muszę zrobić, to zmienić identyfikator użytkownika dla zamiany. Jeśli nie masz dysku wymiany, skopiuj moją linię do powyższego pliku fstab, a następnie dodaj właściwy identyfikator UUID z poprzedniego polecenia blkid. (proszę wybrać odpowiedni identyfikator!)
Jeśli to Twoja pierwsza linia wymiany, upewnij się, że dołączasz całą linię z dodatkowymi rzeczami

none            swap    sw              0       0

Nie martw się tak bardzo o dokładne odstępy.

Mój nowy plik wygląda następująco: Zauważyłem, że także dodałem komentarz powyżej mojej zmiany #Znak oznacza, że ​​jest to komentarz.

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/mmcblk1p6 during installation
UUID=a611601a-6ea8-4e34-9859-42a2470cac29 /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/mmcblk0p1 during installation
UUID=00F2-C0CE  /boot/efi       vfat    umask=0077      0       1
# swap was on /dev/mmcblk1p5 during installation  NOW changed to mmcblk0p5
UUID= 709ea197-e6fb-428b-9c1f-4b258452b10c  none            swap    sw              0       0

Nie wklejaj cytatów. Nie ma spacji po =znaku.

Zapisz swój plik.

Otwórz go ponownie, aby mieć pewność, że zmiany zostały zapisane. Zamknij gedit i terminal z niebezpiecznymi suprawami, za które będą cię skarcić maniacy (ponieważ jest to łatwa praca z ... i łatwe do zniszczenia).

Uruchom ponownie i trzymaj kciuki!

Uruchomiłem ponownie, a następnie sprawdziłem, czy moja zamiana działa, patrząc na aplikację wydajności systemu. Nadal miałem napęd wymiany! Ale czy to był nowy, czy stary? Nie mogłem sprawdzić, czy mój nowy dysk został faktycznie załadowany, ponieważ nowy ma taki sam rozmiar jak stary dysk. Dlatego swaponwpisałem : (NIE NALEŻY WSTAWIAĆ WIĘCEJ NIŻ SWAPON, a wyświetli się lista wymiany: bezpieczna). Teraz widzę mój nowy dysk, na mmblk0p5którym odpowiada praca UUID, nad którą pracowałem fstab. Mój cienki dysk główny o pojemności 32 GB zadziałał:


To kończy ten samouczek od początkującego użytkownika, który nigdy wcześniej tego nie robił. Połowę powodu, dla którego stworzyłem ten samouczek, było, aby Geekowie, którzy nam pomagali (i dziękuję), mogli zobaczyć, jak pomóc początkującym użytkownikom. Podejrzewałem, że poprzednie odpowiedzi wprowadzały w błąd i postanowiłem zrobić samouczek podczas mojej pracy ... Odgadując inne przydatne odpowiedzi, doszedłem do wniosku, że wszystko, co musiałem zrobić, to edytować fstabflle i restartować. Wszystko działało dobrze i nadal mam Windows 10 i jeszcze nie wyczyściłem mojego systemu. Jeśli ktoś wie, jak udostępnić system Windows pagefile.sysjako plik wymiany systemu Linux, byłbym zainteresowany, ponieważ w systemie Windows pobierane są 2 GB, a miejsce na dysku HD jest bardzo drogie na moim komputerze o pojemności 32 GB.

Bhikkhu Subhuti
źródło