xv6-k210/doc/用户使用-文件系统.md

34 lines
1.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 如何在qemu上挂载文件镜像
首先需要一个FAT32文件镜像在Linux下可以通过`dd`命令和`mkfs`命令生成一个镜像将生成的fs.img文件放在xv6-k210目录下即可。
```bash
$ dd if=/dev/zero of=fs.img bs=512k count=2048
$ mkfs.vfat -F 32 fs.img
```
注意:`dd`命令中的`bs`和`count`的参数只是参考这会生成1GB的镜像。
## 如何在镜像中存入用户程序
首先通过`mount`命令,将镜像挂载到你指定的目录(这里以/mnt为例然后将build之后xv6-user目录下文件名以"\_"为前缀的用户程序拷贝至镜像中,再取消挂载以保存写入结果即可。也可以在镜像中建立一些文本文件进行读测试。
注意必须将xv6-user目录下的"\_init"拷贝至镜像根目录中,并且重命名为"init"这是xv6原本的设定目前我们暂未更改还需拷贝"\_sh"至镜像中才能启动shell。编写的用户程序也需要放在xv6-user目录下同时需要添加至Makefile的`UPROGS`目标中,才能连同内核一起编译链接。
```bash
$ make build
$ (sudo)mount fs.img /mnt
$ (sudo)cp xv6-user/_init /mnt/init
$ (sudo)cp xv6-user/_sh /mnt
$ (sudo)cp xv6-user/... /mnt
$ ...
$ (sudo)umount /mnt
```
PS:现已可以通过执行 `make fs` 自动完成上述操作。
## 如何在 SD 卡中存入用户程序
将上述操作生成的 `fs.img` 写入 SD 卡即可。可以执行操作:
```bash
make sdcard sd="your SD card device"
```
警告:这会覆盖 SD 卡的原有数据与文件系统!