Ver código fonte

chore(build-img): fix Linux mount problem

shao 11 meses atrás
pai
commit
bcb515cacd
1 arquivos alterados com 15 adições e 11 exclusões
  1. 15 11
      script/build-img.sh

+ 15 - 11
script/build-img.sh

@@ -1,35 +1,39 @@
 #!/bin/sh
 
 OS=`uname -s`
+SUDO=sudo
 
 dd if=/dev/zero of=build/fs.img bs=`expr 1024 \* 1024` count=512
 mkfs.fat -n SYSTEM build/fs.img
 
 if [ "$OS" = "Darwin" ]; then
+    SUDO=''
     hdiutil detach build/mnt > /dev/null 2>&1 || true
     hdiutil attach build/fs.img -mountpoint build/mnt
 else
     mkdir -p build/mnt
-    sudo mount disk.img build/mnt
+    $SUDO losetup -P /dev/loop2 build/fs.img
+    $SUDO mount /dev/loop2 build/mnt
 fi
 
-cp build/user-space-program/hello-world.out build/mnt/hello
-cp build/user-space-program/interrupt-test.out build/mnt/int
-cp build/user-space-program/stack-test.out build/mnt/stack
-cp build/user-space-program/init.out build/mnt/init
-cp build/user-space-program/priv-test.out build/mnt/priv
-cp ./busybox build/mnt/busybox
-cp ./busybox-minimal build/mnt/busybox_
-cp ./init_script.sh build/mnt/initsh
+$SUDO cp build/user-space-program/hello-world.out build/mnt/hello
+$SUDO cp build/user-space-program/interrupt-test.out build/mnt/int
+$SUDO cp build/user-space-program/stack-test.out build/mnt/stack
+$SUDO cp build/user-space-program/init.out build/mnt/init
+$SUDO cp build/user-space-program/priv-test.out build/mnt/priv
+$SUDO cp ./busybox build/mnt/busybox
+$SUDO cp ./busybox-minimal build/mnt/busybox_
+$SUDO cp ./init_script.sh build/mnt/initsh
 
 # Add your custom files here
 
-cp -r $HOME/.local/i486-linux-musl-cross build/mnt/
+$SUDO cp -r $HOME/.local/i486-linux-musl-cross build/mnt/
 
 # End of custom files
 
 if [ "$OS" = "Darwin" ]; then
     hdiutil detach build/mnt
 else
-    sudo umount build/mnt
+    $SUDO losetup -d /dev/loop2
+    $SUDO umount build/mnt
 fi