浏览代码

调整创建磁盘、挂载磁盘及卸载磁盘的脚本

hwzzy666 2 年之前
父节点
当前提交
339570a2f3
共有 5 个文件被更改,包括 19 次插入22 次删除
  1. 3 7
      docs/introduction/build_system.md
  2. 2 0
      run.sh
  3. 3 9
      tools/create_hdd_image.sh
  4. 8 4
      tools/mount_virt_disk.sh
  5. 3 2
      tools/umount_virt_disk.sh

+ 3 - 7
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将会被启动。   
+    首先,您需要使用`tools/create_hdd_image.sh`创建一块磁盘镜像文件,该脚本在创建磁盘镜像之后,会自动调用fdisk,您需要在fdisk之中对虚拟磁盘进行初始化。您需要使用fdisk把磁盘的分区表设置为MBR格式,并创建1个分区。具体操作为:输入o、n, 然后按4次回车,直到回到fdisk的默认界面,再输入w即可,按顺序输入,并且,每次输入完成后要按下回车。完成操作后,磁盘镜像`disk.img`将会被创建。
+    
+    至此,准备工作已经完成,您可以运行`run.sh`,然后DragonOS将会被启动。

+ 2 - 0
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 ..

+ 3 - 9
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/

+ 8 - 4
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/ 
+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

+ 3 - 2
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
+sudo losetup -d /dev/${LOOP_DEVICE:2:5}
+echo ${LOOP_DEVICE:2:5}