Bagaimana cara mengubah partisi swap di Linux?

12

Bagaimana cara mengubah partisi swap di Linux? Jika saat ini saya menggunakan / dev / hda3 untuk swap, dan saya lebih suka menggunakan / dev / hda4, langkah apa yang harus saya lalui?

Martin Bøgelund
sumber
1
mungkin layak untuk membuat partisi logical / dev / hda5 di partisi primer / dev / hda4 dan menggunakannya untuk swap. Dengan cara ini, Anda tidak perlu menghabiskan seluruh / dev / hda4 untuk swap, dan dapat membuat partisi logis lain di dalamnya
dmityugov

Jawaban:

25

Lakukan sebagai root:

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

dan edit entri swap di / etc / fstab

mateusza
sumber
13

Jika Anda memiliki jumlah RAM yang layak dan aplikasi Anda tidak intensif-memori, Anda dapat mempertimbangkan untuk menggunakan file terpisah sebagai swap bukan seluruh partisi. Dengan begitu Anda dapat dengan mudah memilih jumlah ruang swap yang Anda gunakan, baik dengan menambahkan lebih banyak file swap, atau mengubah ukuran yang sudah ada.

Katakanlah swapfile Anda akan berada di direktori root sebagai /swapfile, dan akan memiliki ukuran 512 MB. Untuk membuatnya mengeluarkan perintah sebagai root:

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

Untuk menggunakannya secara otomatis setelah reboot, masukkan /etc/fstab:

/swapfile    none    swap    defaults    0 0

Menambahkan lebih banyak file swap semudah membuat lebih banyak file ( /swapfile1, /swapfileX), memformatnya menggunakan mkswapdan mengaktifkan penggunaan swapon. Jika Anda ingin menonaktifkan swapfile, Anda dapat menggunakan perintah swapoff /swapfile.

Adapun kinerja antara versi disk dan file, itu tidak terlalu berbeda. Anda bahkan dapat menggunakan swapfile sebagai disk hibernasi di laptop (walaupun saya selalu menggunakan partisi terpisah untuk itu).

drybjed
sumber
swapfile bukan ide yang baik, karena ext4 adalah super SLOW un SSD untuk prosedur penulisan yang sering. Inilah sebabnya mengapa secara default linux swap memiliki sistem file yang berbeda. Cara yang benar adalah dengan mengubah ukuran tabel partisi untuk membuat partisi swap yang lebih besar.
Evalds Urtans
9

Dengan cepat:

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

Untuk bootime, setelah Anda menjalankan mkswap, edit file / etc / fstab dan ubah baris / dev / hda3.

Kyle Brandt
sumber
4

Anda harus memformat / dev / hda4 sebagai swap, yang saya pikir hanya menghapus tabel sistem file, kemudian cukup mengedit / etc / fstab dan arahkan swap ke / dev / hda4. Kemudian reboot dan Anda harus baik-baik saja. Tak perlu dikatakan bahwa Anda akan kehilangan data di / dev / hda4. Anda dapat menggunakan gparted sebagai gui untuk pemformatan.

skitzot33
sumber
1
Anda tidak perlu me-reboot Linux 2.6.x setelah memformat partisi, bahkan setelah mengubah tabel partisi disk.
drybjed
Poin yang bagus, tetapi saya tetap berpegang pada filosofi KISS.
skitzot33
@ skitzot33 Bukankah booting lebih sederhana dari booting ?
glglgl
2

solusi mateusza ok, tetapi negara mungkin tidak dipanggil kembali saat pulih dari hibernasi. Beberapa operasi tambahan diperlukan:

# 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

Anda dapat menguji hibernasi Anda di sini, jika tidak berhasil:

# 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

diambil dari askubuntu

fkk
sumber