最近在学Linux内核编译,在window10(版本1809)子系统下编译内核成功,想验证一下内核运行。验证过程中,在ubuntu子系统做文件系统挂时“sudo mount -o loop myinitrd4M.img rootfs”报错:
mount: rootfs: mount failed: Operation not permitted.
问题原因是:windows10 wsl不支持loop设备。
回环设备(loop-back devices)
回环设备( 'loopback device')允许用户以一个普通磁盘文件虚拟一个块设备。设想一个磁盘设备,对它的所有读写操作都将被重定向到读写一个名为 disk-image 的普通文件而非操作实际磁盘或分区的轨道和扇区。(当然,disk-image 必须存在于一个实际的磁盘上,而这个磁盘必须比虚拟的磁盘容量更大。)回环设备允许你这样使用一个普通文件。
解决方案:
1. 使用虚拟机 + ubuntu验证。
2. 继续使用window10的Linux子系统验证,但是要升级wsl到wsl2,因此就需要升级windows10的版本到,需要按照https://zhuanlan.zhihu.com/p/165508059里所说的升级windows10版本。如何查看win10版本:win + r后输入winver
在Window10的Linux子系统中尝试编译并验证Linux内核时遇到挂载回环设备失败的问题。由于WSL1不支持loop设备,导致无法进行挂载操作。解决方案包括升级到WSL2,这需要将Windows10版本提升到对应要求。此外,也可以选择使用虚拟机来完成内核验证。





