文件镜像

下面我们来介绍一下我们系统的文件镜像的制作.我们在MAKEFILE中规定了disk.img的制作方式

disk.img:disk
	@rm -f disk.img
	@if [ ! -f "disk.img" ]; then \
		echo "making disk image..."; \
		dd if=/dev/zero of=disk.img bs=512k count=8; \
		mkfs.vfat -F 32 disk.img; fi
	@sudo mount disk.img $(dst)
	@sudo cp -r sd/* $(dst)
	@sudo umount $(dst)

在这些命令中,首先删除了之前的文件镜像文件,创建了一个新的文件镜像,然后进行挂载,利用cp指令把sd文件夹中的所有元素放到disk.img中.

然后我们把视角转到link_disk.S中:这个汇编文件负责把disk.img放在数据段中.

    .align 4
    .section .data
    .section .data.fs_img
    .global fs_img_start
    .global fs_img_end
fs_img_start:
    .incbin "./disk.img"
fs_img_end:

ramdisk.c中,我们把RAM DISK的首地址设置成fs_img_start也就是disk.img的首地址

Last updated