我在我的SSD驱动器上安装了具有默认分区的Debian Jessie。我当前的磁盘分区如下所示:
因为我有16GB的RAM,所以我认为我不需要swap。但是,由于我还有其他磁盘驱动器,因此我可以例如在其他驱动器之一上创建交换文件。
您能告诉我应该采取什么步骤正确而永久地删除交换分区,以免它占用磁盘空间吗?我希望删除交换分区,因为我目前只有128GB SSD。
这是我每次尝试并重新启动的内容;这些步骤中的每一个都不是永久性的,或者没有做任何事情:
/etc/fstab
吗?
我在我的SSD驱动器上安装了具有默认分区的Debian Jessie。我当前的磁盘分区如下所示:
因为我有16GB的RAM,所以我认为我不需要swap。但是,由于我还有其他磁盘驱动器,因此我可以例如在其他驱动器之一上创建交换文件。
您能告诉我应该采取什么步骤正确而永久地删除交换分区,以免它占用磁盘空间吗?我希望删除交换分区,因为我目前只有128GB SSD。
这是我每次尝试并重新启动的内容;这些步骤中的每一个都不是永久性的,或者没有做任何事情:
/etc/fstab
吗?
Answers:
以root身份执行:
# swapoff -a
为了使更改永久生效,请编辑/etc/fstab
并删除或注释掉交换条目。
cat /proc/swaps
-仅报告标题行。如果是这样,那么可以,您可以安全地删除交换分区-并扩大另一个分区-回收该空间-如果您想要的话。
resume
内核选项(引用交换的UUID),即更新grub并重新生成initramfs(基本上执行与中的某些步骤相反的操作)SwapFaq)。
/boot
为该uuid grep配置grub的配置(在之下),并且可以解压缩initramsfs并对其内容进行grep以获得根本原因。确保执行不区分大小写的grep。
swapoff -a
去/etc/rc.local
。其交换的,因为当你开机几毫秒没有问题。配备16GB RAM的设备不会长时间写入任何内容。只需将交换空间留在那里(磁盘空间很便宜)并且不要更改 /etc/fstab
。
如果您打开了GParted,请关闭它。它的交换功能似乎不是永久的。
打开终端并成为root
(su
); 如果已sudo
启用,则还可以例如执行sudo -i
; 查看man sudo
所有选项):
sudo -i
swapoff --all
确保100%确保特定的交换分区分区已关闭:
cat /proc/swaps
打开您熟悉此文件的文本编辑器,例如,nano
如果不确定:
nano /etc/fstab
# UUID=1d3c29bb-d730-4ad0-a659-45b25f60c37d none swap sw 0 0
打开您熟悉此文件的文本编辑器,例如,nano
如果不确定:
nano /etc/initramfs-tools/conf.d/resume
# RESUME=UUID=1d3c29bb-d730-4ad0-a659-45b25f60c37d
不要关闭终端,因为以后无论如何都会需要它。
界面:
从菜单中打开GParted,或者从我们打开的终端中更方便地打开:
gparted
如果您没有安装它,则可以这样做;然后再次运行上一个命令:
apt-get install gparted
从右上角的菜单中选择您的驱动器。
右键单击->删除以删除交换分区。您必须立即应用更改。
右键单击->调整大小/移动,调整主/其他分区的大小。您必须立即应用更改。
回到终端,让我们重新创建启动映像:
update-initramfs -u -k all
更新GRUB:
update-grub
如果您想测试机器是否启动,可以立即重启。
CLI:
注释/删除中的相关条目,/etc/fstab
以防止在下次启动时重新启用该条目,然后重新启动或运行swapoff -a
以禁用当前运行系统的交换分区的使用。
现在删除交换分区,将系统分区扩展到未使用的空间,然后扩展实际的文件系统。我不知道您的图形分区管理器是否可以完成所有这些操作,但是如果不能做到这一点,则可以使用fdisk
and resize2fs
:
# fdisk /dev/sdX
# Display current partition table, copy/paste this output somewhere to be able to go back in case you screw up
Command (m for help): p
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 22527 20480 10M ef EFI (FAT-12/16/32)
/dev/sda2 22528 186367 163840 80M 83 Linux
/dev/sda3 186368 204799 18432 9M 82 Linux swap / Solaris
# Delete the swap partition
Command (m for help): d
Partition number (1-3, default 3): 3
Partition 3 has been deleted.
# Delete the system partition
Command (m for help): d
Partition number (1,2, default 2): 2
Partition 2 has been deleted.
# Create a new system partition starting the same as the old one but ending a bit farther, at the end of the (now deleted) swap partition
Command (m for help): n
Partition type
p primary (1 primary, 0 extended, 3 free)
e extended (container for logical partitions)
Select (default p):
Using default response p.
Partition number (2-4, default 2):
# Enter the same start sector as the old part.
First sector (22528-204799, default 22528): 22528
# Enter the end sector of the old swap partition
Last sector, +sectors or +size{K,M,G,T,P} (22528-204799, default 204799): 204799
Created a new partition 2 of type 'Linux' and of size 89 MiB.
# Save the changes
Command (m for help): w
The partition table has been altered.
最后,我们扩展当前文件系统以利用新的可用空间(直到现在实际的文件系统还不知道我们已经为其基础分区添加了更多空间)。默认情况下,resize2fs
除非给出固定大小,否则使用整个分区,因此除了分区块设备外,我们无需指定其他任何内容。可以在挂载分区的情况下在线完成文件系统的扩展(与收缩相对):
# resize2fs /dev/sda2
现在,您已经成功禁用了交换功能,并且无需重新启动即可收回未使用的空间。
请注意,Debian的过程有些不同,需要编辑更多文件。查看此答案以获取更多信息。
partprobe
在resize2fs
命令之前运行,否则内核将不知道新的分区表,并且不会调整任何大小。
/etc/fstab
。完成此操作后,应该禁用交换功能,并且在下次启动时不要再次使用它。现在,如果要回收未使用的空间,则应该修改分区表并扩展主文件系统。请参阅我的答案以获取详细说明。