Jak zmienić partycję wymiany w systemie Linux?

12

Jak zmienić partycję wymiany w systemie Linux? Jeśli obecnie używam / dev / hda3 do wymiany, a raczej wolę użyć / dev / hda4, jakie kroki powinienem wykonać?

Martin Bøgelund
źródło
1
prawdopodobnie warto utworzyć partycję logiczną / dev / hda5 na partycji podstawowej / dev / hda4 i użyć jej do wymiany. W ten sposób nie musisz wydawać całego / dev / hda4 na zamianę i możesz w nim tworzyć inne partycje logiczne
dmityugov

Odpowiedzi:

25

Zrób to jako root:

swapoff /dev/hda3
mkswap /dev/hda4
swapon /dev/hda4

i edytuj pozycję wymiany w / etc / fstab

mateusza
źródło
13

Jeśli masz przyzwoitą ilość pamięci RAM, a aplikacje nie zajmują dużo pamięci, możesz rozważyć użycie osobnego pliku jako wymiany zamiast całej partycji. W ten sposób możesz łatwo wybrać ilość używanej przestrzeni wymiany, dodając więcej plików wymiany lub zmieniając rozmiar istniejących.

Załóżmy, że plik wymiany będzie znajdować się w katalogu głównym jako /swapfilei będzie miał rozmiar 512 MB. Aby go utworzyć, wydaj polecenia jako root:

$ dd if=/dev/zero of=/swapfile bs=1M count=512
$ mkswap /swapfile
$ swapon /swapfile

Aby automatycznie użyć go po ponownym uruchomieniu, włóż /etc/fstab:

/swapfile    none    swap    defaults    0 0

Dodawanie większej liczby plików wymiany jest tak proste, jak tworzenie większej liczby plików ( /swapfile1, /swapfileX), formatowanie ich przy użyciu mkswapi włączanie korzystania swapon. Jeśli chcesz wyłączyć plik wymiany, możesz użyć polecenia swapoff /swapfile.

Jeśli chodzi o wydajność między wersją dysku a wersją pliku, nie różni się to tak bardzo. Możesz nawet użyć pliku wymiany jako dysku hibernacji w laptopach (chociaż zawsze używam do tego osobnej partycji).

drybjed
źródło
plik wymiany nie jest dobrym pomysłem, ponieważ ext4 to super SLOW un SSD do częstych procedur zapisu. Dlatego domyślnie zamiana linuksa ma inny system plików. Prawidłowym sposobem byłaby zmiana rozmiaru tabeli partycji, aby utworzyć większą partycję wymiany.
Evalds Urtans
9

W locie:

sudo swapoff /dev/hda3
sudo mkswap /dev/hda4
sudo swapon /dev/hda4

W przypadku bootime, po uruchomieniu mkswap, edytuj plik / etc / fstab i odpowiednio zmień linię / dev / hda3.

Kyle Brandt
źródło
4

Musisz sformatować / dev / hda4 jako swap, co myślę, że po prostu usuwa tabele systemu plików, a następnie po prostu edytuje / etc / fstab i wskazuje swap na / dev / hda4. Następnie uruchom ponownie i powinieneś być dobry. Oczywiste jest, że stracisz jakiekolwiek dane na / dev / hda4. Możesz użyć gparted jako GUI do formatowania.

skitzot33
źródło
1
Nie musisz ponownie uruchamiać Linuksa 2.6.x po sformatowaniu partycji, nawet po zmianie tablicy partycji dysku.
drybjed
Dobra uwaga, ale trzymałem się filozofii KISS.
skitzot33
@ skitzot33 Czy ładowanie nie jest prostsze niż ładowanie ?
glglgl
2

Rozwiązanie mateusza jest w porządku, ale stanu nie można przywołać podczas odzyskiwania ze stanu hibernacji. Potrzebne są dodatkowe operacje:

# prepare your partitions
swapoff /dev/sda2
mkswap /dev/sda3
swapon /dev/sda3

# find swap uuid
sudo blkid | grep swap
# OR
sudo echo ls -l /dev/disk/by-uuid | grep sda3 |  cut -d' '  -f8 >> /etc/fstab

# edit swap entry in /etc/fstab
gksu gedit /etc/fstab

# edit the uuid line in /etc/initramfs-tools/conf.d/resume
gksu gedit /etc/initramfs-tools/conf.d/resume

# In terminal, execute this command
sudo update-initramfs -u

możesz przetestować swoją hibernację tutaj, jeśli to nie działa:

# check your /etc/default/grub file
gksu gedit /etc/default/grub

# Depending on your version : if a line looks like
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=<old_swap_partition_uuid>"
# then modify it accordingly; otherwise that's all, you're done

# execute in terminal
sudo update-grub

zaczerpnięte z askubuntu

fkk
źródło