Как изменить раздел подкачки в Linux?

12

Как изменить раздел подкачки в Linux? Если я в настоящее время использую / dev / hda3 для подкачки, и я бы предпочел использовать / dev / hda4, какие шаги мне следует пройти?

Мартин Богелунд
источник
1
вероятно, стоит создать логический раздел / dev / hda5 в основном разделе / ​​dev / hda4 и использовать его для подкачки. Таким образом, вам не нужно тратить весь / dev / hda4 на своп, и вы можете создавать в нем другие логические разделы
dmityugov

Ответы:

25

Сделайте это как root:

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

и отредактируйте запись подкачки в / etc / fstab

mateusza
источник
13

Если у вас приличный объем оперативной памяти и ваши приложения не занимают много памяти, вы можете рассмотреть возможность использования отдельного файла в качестве подкачки вместо целого раздела. Таким образом, вы можете легко выбрать объем используемого пространства подкачки, добавив больше файлов подкачки или изменив размеры существующих.

Допустим, ваш файл подкачки будет находиться в корневом каталоге как /swapfile, и будет иметь размер 512 МБ. Для его создания выполните команды от имени root:

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

Чтобы автоматически использовать его после перезагрузки, вставьте в /etc/fstab:

/swapfile    none    swap    defaults    0 0

Добавить больше файлов подкачки так же просто, как создать больше файлов ( /swapfile1, /swapfileX), отформатировать их с помощью mkswapи включить использование swapon. Если вы хотите отключить файл подкачки, вы можете использовать команду swapoff /swapfile.

Что касается производительности между диском и версией файла, она не сильно отличается. Вы даже можете использовать swapfile в качестве диска гибернации в ноутбуках (хотя я всегда использую отдельный раздел для этого).

drybjed
источник
swapfile не очень хорошая идея, потому что ext4 - супер SLOW и SSD для частых процедур записи. Вот почему по умолчанию Linux swap имеет другую файловую систему. Правильный способ будет изменить размер таблицы разделов, чтобы сделать больший раздел подкачки.
Эвальдс Уртанс
9

На лету:

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

Для запуска, после запуска mkswap, отредактируйте файл / etc / fstab и измените строку / dev / hda3 соответственно.

Кайл Брандт
источник
4

Вам нужно отформатировать / dev / hda4 как swap, который, я думаю, просто удаляет таблицы файловой системы, затем просто отредактируйте / etc / fstab и укажите swap на / dev / hda4. Затем перезагрузитесь и у вас все получится. Само собой разумеется, что вы потеряете любые данные на / dev / hda4. Вы можете использовать gparted в качестве графического интерфейса для форматирования.

skitzot33
источник
1
Вам не нужно перезагружать Linux 2.6.x после форматирования раздела, даже после изменения таблицы разделов диска.
Drybjed
Хороший вопрос, но я придерживался философии KISS.
skitzot33
@ skitzot33 Разве загрузка не проще, чем загрузка ?
glglgl
2

Решение mateusza в порядке, но состояние не может быть вызвано при восстановлении после спячки. Необходимы некоторые дополнительные операции:

# 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

Вы можете проверить свою гибернацию здесь, если она не работает:

# 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

взяты из аскубунту

ФКК
источник