如何在Linux中更改交换分区? 如果我现在使用/ dev / hda3进行交换,而我宁愿使用/ dev / hda4,那我应该经历哪些步骤?
以root身份执行操作:
swapoff /dev/hda3 mkswap /dev/hda4 swapon /dev/hda4
并编辑/ etc / fstab中的交换条目
如果你有相当数量的内存,并且你的应用程序不是内存密集的,你可以考虑使用一个单独的文件作为交换而不是整个分区。 这样,您可以通过添加更多交换文件或调整现有大小来轻松select交换空间量。
假设您的交换文件将作为/swapfile
驻留在根目录下,并且将具有512 MB的大小。 以root身份创build命令:
$ dd if=/dev/zero of=/swapfile bs=1M count=512 $ mkswap /swapfile $ swapon /swapfile
要在重新启动后自动使用它,请插入/etc/fstab
:
/swapfile none swap defaults 0 0
添加更多的交换文件就像创build更多文件( /swapfile1
, /swapfileX
)一样简单,使用mkswap
格式化并使用swapon
启用。 如果要禁用交换文件,可以使用命令swapoff /swapfile
。
至于磁盘和文件版本之间的性能,这并不是非常不同的。 你甚至可以在笔记本电脑中使用swapfile作为hibernate磁盘(尽pipe我总是使用单独的分区)。
在飞行中:
sudo swapoff /dev/hda3 sudo mkswap /dev/hda4 sudo swapon /dev/hda4
对于bootime,运行mkswap之后,编辑/ etc / fstab文件并相应地更改/ dev / hda3行。
您需要将/ dev / hda4格式化为swap,我认为这只是删除了文件系统表,然后编辑/ etc / fstab并指向swap到/ dev / hda4。 然后重新启动,你应该是好的。 不用说,你会失去/ dev / hda4上的任何数据。 您可以使用gparted作为格式化的gui。
mateusza的解决scheme是好的,但从hibernate状态恢复时可能不会恢复状态。 需要一些额外的操作:
# 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
你可以在这里testing你的冬眠,如果它不工作:
# 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
从askubuntu采取