Linux下swap分区没有UUID解决办法


在Windows下使用分区调整软件更改了一下我Linux下swap分区的大小,

之后再进入Linux时发现swap分区无法挂载。打开/etc/fstab查看一下挂载配置,发现挂载分区时使用的都是uuid而不是直接使用像/dev/sda1这样的完整路径。看了一下文件里面交换分区的UUID,然后又用blkid查看我原来交换分区的uuid,

blkid /dev/sdb3

结果:

/dev/sdb3:  TYPE="swap"

奇怪了,竟然没有UUID。百度谷歌一起上,看了一些文章后总结出了一点结论:这个UUID是Linux系统给硬盘分区分配的唯一标志符,它是在Linux下由系统自动生成的。由于我在Windows下调整过分区,而Windows系统不会生成UUID,所以这个分区的UUID号就丢失了。

接下来的工作当然是要重新生成了。

第一步:安装Gparted

我们需要安装一个软件,Gparted,Ubuntu下可以直接使用sudo apt-get install gparted命令安装。

第二步:重新格式化swap分区

安装完毕后在命令行中输入gparted启动软件(需要root权限)。如果你有多个硬盘,可能需要在“Gparted">”设备“中选择你的硬盘。之后在下面分区列表中找到你的Swap分区,选中它右击,选择“格式化为”->“linux-swap”,再点击菜单下而的对号按键来应用更改。格式化完毕后,再选中swap分区右击,选择“信息”,这时里面就会出现UUID了,复制出来。

第三步:编辑/et/fstab分区加载配置文件

用文件编码器打开/etc/fstab文件,将里面swap分区原来的UUID改为现在的UUID,保存,重启电脑。

(另外我在编辑这个文件时发现最后一行是/dev/fd0        /media/floppy0  auto  ... 竟然是软驱!!!果断注释掉!)

查看已挂载的交换状态

swapon -s

手动挂载交换分区

swapon /dev/sdb3   (使用你的交换分区路径替换/dev/sdb3)

手动禁用交换分区

swapoff /dev/sdb3   (使用你的交换分区路径替换/dev/sdb3)

后记:当然了,就算swap分区没有UUID也不耽误挂载,直接使用像/dev/sdb3这样的路径也可以完成挂载,只是这样如果你的分区顺序或者硬盘顺序调整后这个路径就会变掉,特别是像我的系统,因为是装在移动硬盘上,接在不同的电脑上分配的路径都可能是不一样,那时加载不了交换分区还是小事,就怕连系统都进不去了,所以在Ubuntu系统安装时默认的配置都是使用UUID加载分区。当然,任何东西都是两面性的,有优点也有缺点,使用UUID加载分区的缺点就是我的遭遇了,分区大小调整后,UUID就会改变,无法挂载。不过由于调整分区大小这种情况不会经常发生,所以这个缺点并不算太大。

相关内容