如何在启动时自动启用交换分区?
另外,如果我没有创建交换分区,还有其他选择吗?
/etc/fstab
并添加新的交换分区。sudo nano /etc/fstab
UUID=735b3be3-779c-4d21-a944-b033225f3ab4 none swap sw 0 0
你可以使用以下命令获取UUID。
sudo blkid /dev/sda3
/dev/sda3
替换为适当的设备名称;为了查看适当的设备名称,我们可以使用lsblk
命令 - 如此处所述。
sudo fdisk -l
(来源:http://askubuntu.com/questions/182446/how-do-i-view-all-available-hdds-partitions),然后寻找类型:Linux swap。 - NumesSanguissudo blkid /dev/sda4
对我来说没有输出(sda4是一个新创建的分区,代码为82h,fdisk显示它是一个"Linux swap / Solaris"分区)。 - Egor Skriptunoffmkswap
运行时更改),另一个是使用磁盘/dev/sda
的主分区号3。一些人更喜欢UUID,因为即使设备名称的分配发生变化,UUID仍然保持不变。所以这就是为什么差异很重要的原因。但是如果您确定不会重新分区驱动器,那么/dev/sda3
同样安全可用。 - 0xC0000022Lgparted
中获取信息,并在那里读取UUID。然后你可以将其复制/粘贴到fstab
中。 - David C.sudo mkswap /dev/sdX
/dev/sdX
替换为你的分区。将此分区挂载为交换分区。sudo swapon -U UUID
UUID是从此处读取的/dev/sdX
的UUID。
blkid /dev/sdX
/etc/fstab
中,添加以下行:UUID=xxx none swap sw 0 0
/etc/initramfs-tools/conf.d/resume
中更新UUID,内容为RESUME=UUID=xxx
。别忘了执行$ sudo update-initramfs -u
。
完成以上步骤:如果你没有多余的分区,也可以创建一个交换文件。这个答案给出了如何创建并在启动时启用交换文件的方法。gparted
来调整您的分区大小。 - NumesSanguis创建一个空文件(1K * 4M = 4 GiB)。
sudo mkdir -v /var/cache/swap
cd /var/cache/swap
sudo dd if=/dev/zero of=swapfile bs=1K count=4M
sudo chmod 600 swapfile
将新创建的文件转换为交换空间文件。
sudo mkswap swapfile
启用文件进行分页和交换。
sudo swapon swapfile
通过 swapon -s
或 top
进行验证:
top -bn1 | grep -i swap
应该显示类似于:KiB Swap: 4194300 total, 4194300 free
的行。
要禁用,请使用 sudo swapoff swapfile
命令。
将其添加到 fstab
文件中,以便在下次系统启动时保持持久性。
echo "/var/cache/swap/swapfile none swap sw 0 0" | sudo tee -a /etc/fstab
通过以下方式重新测试启动时的交换文件:
sudo swapoff swapfile
sudo swapon -va
注意:上述命令会重新检查 fstab
文件的语法,否则您的 Linux 可能无法正常启动。
fstab
文件的语法(防止任何拼写错误),否则Linux可能无法正确启动,导致重大的启动问题,特别是在远程服务器上。 - kenorb有一种使用gparted的图形方式来完成这个操作(如果你想要分配为swap的空间来自一个未挂载/未使用的分区)。
运行Gparted:
sudo gparted
sudo apt-get install gparted
UUID=67682d1b-a1d8-4377-a3dd-67340c141619 none swap sw 0 0
当然,你需要用你设备的标识符替换UUID的值。
(将sdax中的"x"替换为交换分区号,例如:sda5)
将"xxx"替换为UUID号码,例如:67682d1b-a1d8-4377-a3dd-67340c141619)
这是一个关于如何在Ubuntu上创建Ram Drive的全面教程。 不幸的是...截图无法通过剪切和粘贴显示出来... 稍后我会添加它们,但它们并不是必需的。
首先,您需要为您的ram驱动器创建空间。 我有一个双启动系统,只有32GB的硬盘。我的Ubuntu实际上安装在SD卡上(是的,真正的安装而不是Live Casper)。我的交换区也在SD卡上,可能很快就会磨损。我查找了如何更改交换区,并找到了这篇文章,但不喜欢其中的答案,所以在进行更改时制作了一个教程。
如果您只想增加或减少交换分区的大小,您只需要通过您喜欢的分区管理器增加或减少分区即可。Ubuntu已经知道去哪里,并且与大小无关。 如果您想更改位置或创建新的交换区,请继续阅读。 首先,您需要缩小硬盘以提供交换区的空间。如果您要缩小带有Windows系统的磁盘,则最好使用Windows来缩小磁盘(它了解自己的东西)。如果您使用纯Ubuntu,则尝试使用Live Ubuntu USB 来调整大小。
现在我们将把未分配的空间格式化为分区驱动器:如果你是纯粹的Ubuntu用户,并且没有在Windows中缩小分区。你将使用gParted中的调整大小选项。如果你已经缩小了驱动器,请不要执行调整大小步骤。你可以在Dash栏中输入GParted并很快找到该应用程序。右键单击要调整大小的驱动器。
之前:
我不知道该怎么办,所以我查看了我的SD卡上的以前的Ram驱动器。它被格式化为Linux Swap。所以我也将我最近缩小的新分配格式化为Linux Swap。
我对主分区和警告通知都说了好,结果成功了!
正在格式化分区
巧合的是,旧的交换分区在sd卡上被称为mmblk1p5,而新的交换分区也是p5,前面有mmblk0。你的可能是p6或p7,不用担心。
mmblk0
是物理磁盘,p 是该物理磁盘上的分区。而 mmblk01
是另一个物理磁盘,等等。(这是我的SD卡)
在继续工作之前,我再次打开Windows确保Windows仍然能够启动。如果你懒得或者使用纯Ubuntu机器,你不需要执行这一步骤。如果它破坏了Windows,我可能会清除Windows并在该磁盘上进行全新安装Ubuntu(包括交换分区)。如果我破坏了系统,我就不需要再执行任何步骤,因为我可以在新安装中分配交换分区。一切顺利,Windows成功启动。现在你可以在Windows磁盘管理器中看到新的分区:(右键单击开始菜单以获取磁盘管理)
之前对这个问题的回答实际上包含了不必要且复杂的swapon/off命令。我们只需要找到正确的文件,并将交换分区指向新的分区。 同样,如果你只调整了分区大小,你不需要做任何操作。它已经设置好了以找到该分区。大小会自动完成。
如果你更改了分区或者正在创建第一个交换分区,请阅读以下内容:
让我告诉你,这是我第一次做这个。我不是一个UNIX极客,更喜欢使用图形界面工具。我正在学习,并且在进行本教程时保持乐观。到目前为止一切都很顺利。sudo gedit /etc/fstab
fstab
文件看起来是这样的:# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/mmcblk1p6 during installation
UUID=a611601a-6ea8-4e34-9859-42a2470cac29 / ext4 errors=remount-ro 0 1
# /boot/efi was on /dev/mmcblk0p1 during installation
UUID=00F2-C0CE /boot/efi vfat umask=0077 0 1
# swap was on /dev/mmcblk1p5 during installation
UUID=8fb20159-62e4-41a3-8550-791c7a66c328 none swap sw 0 0
su
权限的编辑器中作为草稿本(您可以使用Libre Office,极客们可以使用nano
)。这一步可以帮助您轻松获得正确的文本,而无需引号,以便您可以轻松地粘贴到fstab
文件中。您希望尽可能少更改此文件。New UUID
UUID="709ea197-e6fb-428b-9c1f-4b258452b10c"
none swap sw 0 0
#
字符表示它是一条注释。# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/mmcblk1p6 during installation
UUID=a611601a-6ea8-4e34-9859-42a2470cac29 / ext4 errors=remount-ro 0 1
# /boot/efi was on /dev/mmcblk0p1 during installation
UUID=00F2-C0CE /boot/efi vfat umask=0077 0 1
# swap was on /dev/mmcblk1p5 during installation NOW changed to mmcblk0p5
UUID= 709ea197-e6fb-428b-9c1f-4b258452b10c none swap sw 0 0
不要复制引号。在=
符号后面不要有空格。
再次打开它,只是为了确保你的更改已保存。
关闭gedit和终端,使用危险的su
权限,这样极客们会责骂你(因为这很容易工作...也很容易破坏东西)。
我重新启动了,然后通过查看系统性能应用程序来检查我的交换是否正常工作。
我仍然有一个交换驱动器!但是它是新的还是旧的呢?我无法验证我的新驱动器是否真的加载了,因为新的驱动器和旧驱动器的大小相同。因此,我输入了:swapon
(只输入SWAPON,它将只为您列出交换:安全)。现在我在mmblk0p5
上看到了我的新驱动器,这与我在fstab
上做的UUID工作相匹配。我的32GB主驱动器生效了:
fstab
文件并重新启动即可。一切都很顺利,我仍然拥有Windows 10,并且尚未清除我的系统。如果有人知道如何将Windows的pagefile.sys
共享为Linux的交换文件,我会很感兴趣,因为在我的32GB机器上硬盘空间非常昂贵,其中2GB被用于Windows的交换文件。UUID=e2c53e87-c32c-4230-8405-25b471af6524 none swap 0