x
x
xv6-sifive文档
Search…
⌃K

文件镜像

下面我们来介绍一下我们系统的文件镜像的制作.我们在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的首地址