fread/fwrite -- плохой выбор для этого, потому что это функции библиотеки C, т.е. между ними и ядром ОС ещё один слой абстракции.
Неа. Тот кто читает маны должен приучаться делать это до конца. В случае fclose -> fflush там написано следующее:
fflush(f);
fclose(f)
ls /
ls (hd0,1)/
cat (hd0,2)/grub/grub.cfg
set root=(hd0,2)
update-grub
mount /dev/sdb3 /mnt
# теперь в зависимости от разбивки нужно смонтировать boot (если он отдельном разделе) и efi
mount /dev/sdb2 /mnt/boot
mount /dev/sda1 /mnt/boot/efi
# Монтируем виртуальные fs
mount --bind /dev /mnt/dev
mount -t proc none /mnt/proc
mount -t sysfs none /mnt/sys
mount -t devpts none /mnt/dev/pts
mount -t efivarfs none /mnt/sys/firmware/efi/efivars
#Ух, наконец-то!
chroot /mnt
# Вы в своей системе на SSD.
update-grub
А как же fsync?
Вы извините за глупые вопросы.
Я давно тому назад писал на C/C++ но под windows.
Потом очень долгое время C/C++ не использовал, а сейчас понадобилось под Linux, вот я и "плаваю".