С тех пор, "когда загруженный" означает, что ОС, которая должна внести изменения и записать в диск, также работает от того же диска, имеет более высокий потенциал для проблем/аварии, если что-то идет не так, как надо.
В соответствии с Законом Murphy's, "Что-либо, что может пойти не так, как надо, будет", Вы являетесь самыми в безопасности выполнить операцию, изолированную от операционной системы.
Мое предложение состояло бы в том, чтобы использовать диск начальной загрузки системы (установка) или универсальный "Живой CD".
И если это имеет значение, я разделил и отформатировал разделы таким же образом, Вы описываете, никогда не имея проблемы, только оборот, я, возможно, был невероятно удачлив все те времена.
решение состоит в том, чтобы удалить пробелы вывода, избивают удар:
res=`xxd -p $exportedkey`
echo "${res//[[:space:]]/}"
в php:
$hex = hex2bin($result);
header("Content-Description: File Transfer");
header("Content-Type: application/octet-stream");
header("Content-Transfer-Encoding: binary");
header("Content-Disposition: attachment; filename=hex.pfx");
header('Content-Length: '. strlen($hex));
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
echo $hex;
exit();