当前位置: 首页 > 科技观察

在Linux上创建或扩展交换分区的三种简单方法

时间:2023-03-20 18:49:22 科技观察

用户可以在安装任何Linux操作系统期间或在需要时创建交换空间。如果安装Linux时忘记创建或者想增加swap分区的空间,可以随时创建或增加。有时在安装后升级RAM时需要增加交换分区的空间。例如,如果您想将系统的RAM从1GB升级到2GB,那么您必须升级交换分区的空间(从2GB到4GB),因为它使用双倍的物理RAM。(LCTT译注:其实这是一个误区,swap分区不一定非得是物理内存容量的两倍,只是约定俗成而已。其实如果你的物理内存够用,完全可以不用swappartition-inthiscase,maybeyouincreasethephysicalmemory,thesizeisnotnecessarytoincreasethesizeofswappartition.)Swapspace是磁盘上为虚拟内存保留的空间,当物理内存量(RAMRandom访问内存)已满。如果系统在RAM已满时需要更多的内存资源,内存中不活动的页面将被移动到交换空间,这可以帮助系统运行应用程序更多的时间,但不应将其视为RAM的扩展。建议您创建一个专用的交换分区,但如果没有可用的交换分区,您可以使用交换文件,或交换分区和交换文件的组合。交换空间一般建议用户至少4GB,用户也可以根据自己的需求和环境创建交换空间。我发现大部分虚拟机和云服务器都没有交换分区,所以在这种情况下,我们可以使用以下三种方法来创建、扩展或增加交换空间。如何检测当前交换分区的大小使用free&swapon命令检测当前交换分区空间的大小。$free-htotalusedfreesharedbuff/cacheavailableMem:2.0G1.3G139M45M483M426MSwap:2.0G655M1.4G$swapon--showNAMETYPESIZEUSEDPRIO/dev/sda5partition2G655.2M-1以上输出显示当前交换分区空间为2GB。方法1:通过fallocate命令创建交换文件fallocate程序是立即创建预先分配大小的文件的最佳方法。以下命令将创建一个大小为1GB的/swapfile。$sudofallocate-l1G/swapfile检查创建文件的大小是否正确。$ls-lh/swapfile-rw-r--r--1rootroot1.0GJun709:49/swapfile设置这个文件的权限为600,这样只有root用户才能访问这个文件。$sudochmod600/swapfile通过运行以下命令将此文件转换为交换文件。$sudomkswap/swapfileSettingupswapspaceversion1,size=1024MiB(1073737728bytes)nolabel,UUID=cda50e0e-41f3-49c7-af61-b8cb4a33a464通过运行以下命令使交换文件生效。$sudoswapon/swapfile将新建的swap文件添加到fstab文件中,这样swap分区空间的修改即使重启后也能生效。$vi/etc/fstab/swapfileswapswapdefaults00检查新创建的交换文件。$swapon--showNAMETYPESIZEUSEDPRIO/dev/sda5partition2G657.8M-1/swapfilefile1024M0B-2现在我可以看到一个新的1GB文件/swapfile1。重启系统使新的交换文件生效。方法2:通过dd命令创建交换文件dd命令是另一个实用程序,可以帮助我们立即创建一个预先分配大小的文件。以下dd命令将创建1GB的/swapfile1。$sudoddif=/dev/zeroof=/swapfile1bs=1Gcount=11+0recordsin1+0recordsout1073741824bytes(1.1GB,1.0GiB)copied,16.6154s,64.6MB/s详细解释:if=/dev/zero为输入文件,/dev/zero是类Unix操作系统中的一个特殊文件,它提供与从中读取的一样多的空字符(ASCIINUL,0x00)。of=/swapfile1设置输出文件。bs=1G一次性读写大小为1GBcount=1只复制一个输入块检查创建的文件大小是否正确。$ls-lh/swapfile1-rw-r--r--1rootroot1.0GJun709:58/swapfile1设置这个文件的权限为600,这样只有root用户才能访问这个文件。$sudochmod600/swapfile1通过运行以下命令将此文件转换为交换文件。$sudomkswap/swapfile1Settingupswapspaceversion1,size=1024MiB(1073737728bytes)nolabel,UUID=96def6d7-b2da-4954-aa72-aa32316ec993通过运行以下命令使交换文件生效。$sudoswapon/swapfile1将新建的swap文件添加到fstab文件中,这样swap分区空间的修改即使重启后也能生效。$vi/etc/fstab/swapfile1swapswapdefaults00检查新创建的交换文件。$swapon--showNAMETYPESIZEUSEDPRIO/dev/sda5partition2G1.3G-1/swapfilefile1024M0B-2/swapfile1file1024M0B-3现在我可以看到一个新的1GB/swapfile1。重启系统使新的交换文件生效。方法三:通过对硬盘进行分区来创建交换文件我们还推荐通过对硬盘进行分区来创建交换分区。如果您已经使用fdisk命令在其他硬盘驱动器上创建了一个新分区,假设我们已经创建了一个名为/dev/sda4的分区。使用mkswap命令将该分区转换为交换分区。$sudomkswap/dev/sda4通过运行以下命令使交换文件生效。$sudoswapon/dev/sda4将新的swap文件添加到fstab文件中,这样swap分区的修改即使重启系统也会生效。$vi/etc/fstab/dev/sda4swapswapdefaults00检查新创建的交换文件。$swapon--showNAMETYPESIZEUSEDPRIO/dev/sda5partition2G1.3G-1/swapfilefile1024M0B-2/swapfile1file1024M0B-3/dev/sda4partition1G0B-4我可以在/dev/sda4上看到新的交换分区1GB。重新启动系统以使用新的交换分区。(标题图片:Pixabay,CC0)