diff --git a/.gitignore b/.gitignore index 4a1d4df..b5f3481 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ node_modules/ build-javascript cache/ artifacts/ -secrets/ \ No newline at end of file +secrets/ +tmp.ext4 \ No newline at end of file diff --git a/qemu.ts b/qemu.ts index fefae01..7eec185 100644 --- a/qemu.ts +++ b/qemu.ts @@ -1,7 +1,7 @@ import { mkdtemp, rm } from "node:fs/promises"; import { tmpdir } from "node:os"; import path from "node:path"; -import { execFile } from "./helpers/better-api.js"; +import { canAccess, execFile } from "./helpers/better-api.js"; import { sudoChownToRunningUser } from "./helpers/sudo.js"; export async function runQemu( @@ -17,9 +17,12 @@ export async function runQemu( await sudoChownToRunningUser(squashfs); const tmp = await mkdtemp(path.join(tmpdir(), "define-alpine-qemu-")); try { - const disk = path.join(tmp, "tmp.ext4"); - await execFile("fallocate", ["--length", "1G", disk]); - await execFile("mkfs.ext4", ["-F", disk]); + // const disk = path.join(tmp, "tmp.ext4"); + const disk = "tmp.ext4"; + if (!(await canAccess(disk))) { + await execFile("fallocate", ["--length", "1G", disk]); + await execFile("mkfs.ext4", ["-F", disk]); + } let kernelAppend = [ "root=/dev/sda", @@ -69,5 +72,5 @@ await runQemu( initramfs: "artifacts/kernel/initramfs", vmlinuz: "artifacts/kernel/vmlinuz", }, - { graphic: true } + { graphic: true, noShutdown: true } );