Было бы намного проще подключить SSD самостоятельно и сначала правильно загрузить его, прежде чем добавлять в смесь другие диски и GRUB. Попробуйте recboot / fixmbr
, если вы еще этого не сделали. Убедитесь, что раздел отмечен как загрузочный. Выполните chkdsk C: / f / r
, чтобы проверить наличие ошибок.
После правильной загрузки добавьте другие диски и попробуйте обновить GRUB еще раз. Он должен добавить запись с простой командой chainloader
, которая просто передает остальную часть процесса загрузки загрузчику Win7.
Если вы не видите его с помощью tail
, его нет в файле.
Однако он может находиться в буфере записи программы Python. Обычное поведение при записи в файлы заключается в том, что библиотека C буферизует выходные данные до тех пор, пока не будет записан полный блок (, например. 4096 байт или около того )вместо немедленной отправки всех записей в ОС. Это экономит накладные расходы на системные вызовы. Это похоже на Python.(Я не уверен, использует ли он библиотеку C или выполняет аналогичную буферизацию сам, но конечный результат тот же.)
Для вывода на терминал по умолчанию используется буферизация строк :буфер выписывается при записи новой строки. Конечно, любые буферы также сбрасываются, если файл закрыт, но это действительно не очень эффективно.
Чтобы это исправить, либо вызывайте f.flush()
после каждого f.write()
, либо вообще отключайте буферизацию. Есть несколько способов сделать это в этом вопросе о SO:Отключить буферизацию вывода