Когда я записываю данные на USB-устройство (например, карту памяти или внешний жесткий диск), Ubuntu показывает, что данные передаются с очень высокой скоростью, это происходит очень быстро. Но затем, когда Ubuntu сообщает, что все готово, светодиод записи USB мигает в течение длительного времени. И когда я вытаскиваю USB во время мерцания, передача данных на самом деле не завершена, и не все данные будут записаны.
Есть ли решение этой проблемы?
решение1
Это происходит потому, что Ubuntu берет все данные с диска, которые должны быть записаны на USB, и сохраняет их в буфере RAM (зависит от емкости RAM). Затем Ubuntu показывает, что данные были записаны на USB, но на самом деле данные в это время передаются из буфера на USB. Поэтому, если вы извлечете USB во время передачи (хотя Ubuntu показала вам, что передача выполнена), вы обнаружите, что все данные не были переданы. Вы можете использовать
sudo iotop
для проверки передачи данных в реальном времени между диском и другими устройствами ввода-вывода, и когда вы обнаружите, что передача данных действительно была выполнена, вы можете безопасно извлечь USB-накопитель.
решение2
Перед тем как извлечь диск, отключите его должным образом. В терминале используйтеsync
чтобы заставить его записатьсейчас, sudo umount /path/to/stick
чтобы правильно размонтировать его. Из графического файлового менеджера есть довольно много способов сделать это - у вас может быть символ рядом со значком диска, или щелкните его правой кнопкой мыши и извлеките или размонтируйте.
Вы не можете надежно просто вытащить флешку в любой распространенной ОС, так как записи кэшируются, чтобы дать вашим командам приоритет - если вы сделали несколько правок и вам пришлось ждать каждой записи, вам это не понравится. Это то же самое, что «безопасное удаление» в Windows.