Я предложил бы изучить Unix вкратце O'rielly или просто просто погуглить учебное руководство по удару.
Bash является иначе Границей Снова Оболочка.
Другие оболочки были SH, CSH и KSH, если я помню правильно. CSH основан на C.
Я также рекомендовал бы изучить C и Perl или Python, они помогают вещам скорости встать существенно.
После печати "Дискового сообщения" синхронизации fdisk называет синхронизацию (2) syscall, который заставляет все буферизированные модификации регистрировать метаданные и данные, которые будут записаны в базовые файловые системы. Ожидается, что эта операция может занять время, но это не должно зависать навсегда. Если это делает, Вы могли бы видеть, в которой функции в ядре это зависает в/proc/FDISK_PID/stack.
Вопрос состоит в том, почему fdisk называет синхронизацию () при работе с файлом изображения (не физическое устройство). Это не должно быть необходимо, по моему скромному мнению.
Возможный обходной путь:
У меня была та же проблема, и способ ее решения заключался в использовании sfdisk
вместо fdisk
. Вы обнаружите, что с sfdisk можно делать все, что угодно, и fdisk.
Например, вместо того, чтобы делать:
fdisk $image <<FDISK
p
d
$partition
n
p
$partition
$start
p
w
FDISK
Я сделал:
echo ",+," | sfdisk -N2 $image
Неожиданно никаких проблем с синхронизацией.