最近在学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