diff --git a/docs/introduction/build_system.md b/docs/introduction/build_system.md index 9c2185b7..6f3296a5 100644 --- a/docs/introduction/build_system.md +++ b/docs/introduction/build_system.md @@ -41,10 +41,6 @@ #### 具体操作方法 -    首先,您需要使用`tools/create_hdd_image.sh`创建一块磁盘镜像文件,该脚本在创建磁盘镜像之后,会自动调用fdisk,您需要在fdisk之中对虚拟磁盘进行初始化。您需要使用fdisk把磁盘的分区表设置为MBR格式,并创建1个分区。具体操作为:分别输入命令`o`,`n`,`w`。完成操作后,磁盘镜像`disk.img`将会被创建。 - -    随后,您需要将这个`disk.img`磁盘文件移动到bin/文件夹(需要您手动创建)下。 -并在bin文件夹下创建子文件夹disk_mount。 - -    接着,使用`tools/mount_virt_disk.sh`,挂载该磁盘镜像到disk_mount文件夹。然后在disk_mount文件夹中,创建子文件夹dev,并在dev文件夹中创建键盘文件`keyboard.dev` -    至此,准备工作已经完成,您可以运行`run.sh`,然后DragonOS将会被启动。 \ No newline at end of file +    首先,您需要使用`tools/create_hdd_image.sh`创建一块磁盘镜像文件,该脚本在创建磁盘镜像之后,会自动调用fdisk,您需要在fdisk之中对虚拟磁盘进行初始化。您需要使用fdisk把磁盘的分区表设置为MBR格式,并创建1个分区。具体操作为:输入o、n, 然后按4次回车,直到回到fdisk的默认界面,再输入w即可,按顺序输入,并且,每次输入完成后要按下回车。完成操作后,磁盘镜像`disk.img`将会被创建。 + +    至此,准备工作已经完成,您可以运行`run.sh`,然后DragonOS将会被启动。 \ No newline at end of file diff --git a/run.sh b/run.sh index 6fbfbc42..07a95aa4 100644 --- a/run.sh +++ b/run.sh @@ -93,6 +93,8 @@ cd tools bash m* sudo cp ${root_folder}/bin/user/shell.elf ${root_folder}/bin/disk_mount sudo cp ${root_folder}/bin/user/about.elf ${root_folder}/bin/disk_mount +sudo mkdir ${root_folder}/bin/disk_mount/dev +sudo touch ${root_folder}/bin/disk_mount/dev/keyboard.dev sync bash u* cd .. diff --git a/tools/create_hdd_image.sh b/tools/create_hdd_image.sh old mode 100644 new mode 100755 index f658647c..ef450be0 --- a/tools/create_hdd_image.sh +++ b/tools/create_hdd_image.sh @@ -4,13 +4,7 @@ qemu-img create -f raw disk.img 16M # 再输入w即可 # 按顺序输入,并且,每次输入完成后要按下回车) fdisk disk.img -LOOP_DEVICE=$(sudo losetup -f --show -P disk.img) \ - || exit 1 -# lsblk -echo ${LOOP_DEVICE}p1 - -sudo mkfs.vfat -F 32 ${LOOP_DEVICE}p1 -sudo losetup -d ${LOOP_DEVICE} - -echo "Successfully created disk image, please make a FAT32 filesystem on it and move it to folder ../bin/" +echo "Successfully created disk image, please make a FAT32 filesystem on it" +sudo mkdir -p ../bin +sudo cp ./disk.img ../bin/ diff --git a/tools/mount_virt_disk.sh b/tools/mount_virt_disk.sh old mode 100644 new mode 100755 index 7c4b9d23..8a7314ce --- a/tools/mount_virt_disk.sh +++ b/tools/mount_virt_disk.sh @@ -1,4 +1,8 @@ -sudo losetup -P /dev/loop1 --show ../bin/disk.img -lsblk -mkdir -p ../bin/disk_mount/ -sudo mount /dev/loop1p1 ../bin/disk_mount/ \ No newline at end of file +LOOP_DEVICE=$(sudo losetup -f --show -P ../bin/disk.img) \ + || exit 1 + +echo ${LOOP_DEVICE}p1 +sudo mkfs.vfat -F 32 ${LOOP_DEVICE}p1 +mkdir -p ../bin/disk_mount/ +sudo mount ${LOOP_DEVICE}p1 ../bin/disk_mount/ +lsblk \ No newline at end of file diff --git a/tools/umount_virt_disk.sh b/tools/umount_virt_disk.sh old mode 100644 new mode 100755 index bfd31b7c..7b573a96 --- a/tools/umount_virt_disk.sh +++ b/tools/umount_virt_disk.sh @@ -1,3 +1,4 @@ +LOOP_DEVICE=$(lsblk | grep disk_mount) sudo umount -f ../bin/disk_mount/ -# rm -rf ../bin/disk_mount/ -sudo losetup -d /dev/loop1 \ No newline at end of file +sudo losetup -d /dev/${LOOP_DEVICE:2:5} +echo ${LOOP_DEVICE:2:5} \ No newline at end of file