diff --git a/toolchain/make_hdd.sh b/toolchain/make_hdd.sh index 5b2b5f2..072b0fd 100755 --- a/toolchain/make_hdd.sh +++ b/toolchain/make_hdd.sh @@ -47,8 +47,14 @@ export MTOOLSRC="$MTC" MTOOLS_SKIP_CHECK=1 # тогда открыть /dev/tty нечего и mtools идёт неинтерактивным путём. # # setsid(1) в macOS нет, поэтому делаем то же самое питоном. +# Каналов, откуда mtools может ждать ответ, ДВА, и закрывать надо оба: +# /dev/tty — убирается новой сессией (os.setsid); +# stdin — убирается перенаправлением из /dev/null. +# Закрыть только один недостаточно: с одним лишь setsid mmd переключался на +# stdin и вис уже на нём (lsof: fd 0 = /dev/ttys002). mt() { - python3 -c 'import os,sys; os.setsid(); os.execvp(sys.argv[1], sys.argv[1:])' "$@" + python3 -c 'import os,sys; os.setsid(); os.execvp(sys.argv[1], sys.argv[1:])' \ + "$@" < /dev/null } # MBR + раздел 1 на весь диск (тип FAT16), затем формат FAT16.