- mke2fs:相当于一个压缩软件,Ubuntu默认安装了,是用来制作镜像格式的根文件系统的。
查看ubuntu是否安装了软件
mke2fs(Usage: mke2fs [-c|-l filename] [-b block-size] [-C cluster-size])
mkfs.ext2
which mkfs.ext2(/sbin/mkfs.ext2)
ls -l /sbin/mkfs.ext2(/sbin/mkfs.ext2 -> mke2fs,mkfs.ext2是mke2fs的符号链接)
ls -l /sbin/mkfs.ext3
2.1 创建rootfs.ext2文件并且将之挂载到一个目录下方便访问它
如何知道自己已经做完了这一步:ls /root/porting_x210/rootfs/rootfs (可以看到lost+found文件)
cd /root/porting_x210/rootfs
dd if=/dev/zero of=rootfs.ext2 bs=1024 count=2048
losetup /dev/loop1 rootfs.ext2
mke2fs -m 0 /dev/loop1 2048
mkdir rootfs (后面文件系统就挂载在这里)
mount -t ext2 /dev/loop1 ./rootfs/
ls ./rootfs(可以看到lost+found文件)
2.2 向2中创建的空镜像写linuxrc
cd /root/porting_x210/rootfs/rootfs(nfs挂载目录)
touch linuxrc
ls -l
file linuxrc(linuxrc:empty)
结果:创建的linuxrc会成为镜像中的/linuxrc,内核挂载这个镜像之后就会去执行/linuxrc,那么其实验现在应该是挂载成功,执行失败。
2.3 卸载
cd ..(cd /root/porting_x210/rootfs)
umount /dev/loop1
losetup -d /dev/loop1
ls ./rootfs(是空的,原来里面有lost+found和linuxrc文件,推论:挂载镜像rootfs到空文件夹下,这时相当于把镜像rootfs解压到空文件夹下,从而我们就可以在挂载空文件夹下添加东西,这时如果卸载掉,就相当于把我们添加的东西也添加到镜像rootfs里面去了。这个空文件夹相当于文件夹rootfs。从而我们可以通过访问文件夹来访问镜像了)
总结:文件夹rootfs利用专用镜像工具压缩成镜像rootfs,镜像rootfs挂载成空文件夹rootfs,空文件夹rootfs卸载后成了镜像rootfs。
镜像rootfs制作过程:创建rootfs.ext2文件并且将之挂载到一个目录下方便访问它,在这个目录下添加必要文件内容,卸载掉,文件夹就做好了。
2.4 复制到windows电脑里去烧录
cp rootfs.ext2 /root/winshare/rootfs -f
将rootfs复制到D:fastboot目录下
开发板打断3s进入uboot模式,插好蓝色的USB先
set bootargs console=ttySAC2,115200 root=/dev/mmcblk0p2 rw init=/linuxrc rootfstype=ext2或者set bootargs console=ttySAC2,115200 root=/dev/mmcblk0p2 rw init=/linuxrc rootfstype=ext3(镜像格式用来烧录:root=/dev/mmcblk0p2表示根文件系统mmcblk0p2即mmc设备0的地2个扇区上,init=/linuxrc表示启动后第一个执行的文件,rootfstype=ext2要烧录的镜像格式是ext2)
save
fastboot
windows电脑打开cmd控制台
d:
cd fastboot
fastboot
fastboot devices(出现SMDKC110-01 fastboot)
fastboot flash system rootfs.ext2
fastboot reboot(开发板不要打断3s,直接启动内核)
结果:[ 5.570886] VFS: Mounted root (ext3 filesystem) on device 179:2.
Failed to execute /linuxrc. Attempting defaults..
挂载成功,执行失败(set bootargs console=ttySAC2,115200 root=/dev/mmcblk0p2 rw init=/linuxrc rootfstype=ext3)
结果:set bootargs console=ttySAC2,115200 root=/dev/mmcblk0p2 rw init=/linuxrc rootfstype=ext2
[ 5.566674] Failed to execute /linuxrc. Attempting defaults...
说明:ext2和ext3是兼容的