
Началось все с того, что коллега увидела, как я выдергиваю флешку из ноутбука сразу после копирования, и посмотрела на меня так, будто я при ней вытащила вилку из розетки за провод. Следующие двадцать минут мы спорили про значок в трее, и к концу спора выяснилось, что ни одна из нас толком не знает, что происходит, когда на него нажимаешь. Она нажимает, потому что так учили еще в школьном компьютерном классе, я не нажимаю, потому что у меня за все эти годы ни разу ничего не сломалось, и аргументы у нас обеих, честно говоря, были уровня «а вот у моей бабушки».
Флешек у меня в ящике дофига, половину из них не жалко, так что я решила разобраться, что именно я все это время пропускала, и заодно выяснить, на какой из трех своих систем я рисковала больше всего.
Откуда вообще взялась кнопка
Операционная система не любит писать на диск сразу. Когда программа сохраняет файл, данные сначала попадают в оперативную память и уходят на носитель чуть позже, пачкой, когда системе удобно. Для жесткого диска выигрыш огромный, потому что вместо сотни мелких записей вразнобой получается несколько крупных и головка меньше бегает по пластинам. Проблема в том, что жесткий диск из работающего компьютера никто не выдергивает, а флешку выдергивают постоянно, и система про это заранее ничего не знает.
Windows решает это политикой, которая настраивается для каждого устройства отдельно. Если зайти в свойства флешки, открыть вкладку «Оборудование», потом свойства самого устройства и вкладку «Политика», там будут два варианта: «Быстрое удаление» и «Оптимальная производительность». Первый отключает кэширование записи, и система отправляет данные на флешку сразу. Второй включает кэширование, и тогда без безопасного извлечения можно легко остаться с половиной файла.
Фишка в том, что начиная с Windows 10 версии 1809 (осень 2018 года) Microsoft сделала быстрое удаление политикой по умолчанию для внешних накопителей и отдельно написала об этом в документации. Что стояло по умолчанию раньше, зависело от версии и типа устройства, и тут я запуталась в старых форумах, так что утверждать ничего не буду. На моем рабочем ноуте, где я в этих настройках никогда ничего не трогала, на всех трех флешках, которые я туда воткнула, стоит «Быстрое удаление (по умолчанию)».
Получается, что в Windows, когда окно копирования закрылось, данные действительно уже ушли на флешку. На этом месте я уже собиралась написать коллеге победное сообщение, но полезла в файловую систему и передумала.
Грязный бит
У FAT32 и exFAT, на которых живет подавляющее большинство флешек, есть флаг «том грязный». Пока том смонтирован и на него пишут, флаг взведен, а при корректном отключении Windows его снимает. Если флешку выдернуть без размонтирования, флаг так и остается взведенным, и в следующий раз система вежливо предложит проверить и исправить диск. То самое окошко, которое все закрывают не читая, и есть след того, что флешку достали наживую.
Сам по себе флаг безобиден и только сообщает системе, что том закрыли неаккуратно. Портятся данные в другом месте, в самой файловой таблице. Таблица FAT и записи каталогов обновляются отдельными операциями, и если питание пропало между записью данных и записью метаданных, на флешке остается файл нулевой длины или потерянные кластеры, которые chkdsk потом складывает в папку FOUND.000 файлами с именами вида FILE0000.CHK. С быстрым удалением окно, в которое можно так попасть, маленькое, но пока идет копирование, оно открыто.
Я проверила это самым простым способом: копировала на флешку папку с отпускными фотографиями, 1,2 ГБ в 340 файлах, и выдергивала ее посередине копирования, всего десять раз. Флешка пережила все десять, но каждый раз файл, который копировался в момент выдергивания, оказывался обрезанным или нулевой длины, а в трех случаях из десяти chkdsk еще и нашел потерянные кластеры и сложил их в FOUND.000. Если же выдергивать флешку через минуту после окончания копирования, Windows предлагала проверку в девяти случаях из десяти, и проверка ни разу ничего не нашла.
Пингвин никуда не торопится
А теперь я беру ноутбук с Linux и 16 ГБ памяти, ту же флешку и образ дистрибутива на 2 ГБ.
$ time cp distro.iso /media/me/FLASH/ real 0m2,310s подозрительно быстро для USB 2.0 $ grep Dirty /proc/meminfo Dirty: 1948312 kB вот и мой образ, лежит в оперативке $ time sync real 3m48,617s вот сколько он на самом деле писался
Linux плевать хотел на то, что носитель съемный. Любая запись идет через страничный кэш, cp завершается в момент, когда данные легли в память, и файловый менеджер радостно рисует «готово». Дальше ядро сбрасывает грязные страницы на носитель в фоне: поток сброса просыпается раз в vm.dirty_writeback_centisecs (по умолчанию 500, то есть раз в 5 секунд) и пишет все, что провисело в памяти дольше vm.dirty_expire_centisecs (по умолчанию 3000, то есть 30 секунд), а если грязных данных накопилось слишком много относительно объема памяти, начинает писать раньше.
Дешевая флешка на USB 2.0 пишет у меня около 9 МБ/с (так показал dd с oflag=direct), и два гигабайта она переваривала почти четыре минуты. Все это время прогресс-бар давно закрыт, файл виден в папке и даже показывает правильный размер, а если выдернуть флешку в этот момент, на ней останется ровно то, что ядро успело дописать. Сколько это будет, вам никто не скажет. Сколько людей закрыли окно копирования, выдернули флешку и понесли в копицентр файл, от которого на флешке была половина? И сколько из них потом ругали копицентр?
Насколько я помню, udisks, который монтирует флешки в большинстве десктопных окружений, монтирует vfat с опцией flush, и драйвер из-за нее старается сбрасывать данные пораньше. Судя по тому, что я вижу в Dirty, спасает это не сильно. Зато в Linux кнопка извлечения в файловом менеджере делает ровно то, что обещает: umount ждет, пока все будет записано, а GNOME еще и показывает уведомление с просьбой не отключать устройство до окончания записи. Так что на Linux эта кнопка НУЖНА, и я с опозданием на десять лет это признаю.
Мак пишет, даже когда вы только посмотрели
macOS в этом смысле ближе к Linux, запись она тоже кэширует и, если выдернуть флешку без извлечения, показывает уведомление о том, что диск был извлечен неправильно. У мака есть еще одна особенность, которую я долго не замечала. Стоит вставить флешку в мак и просто открыть ее в Finder, на ней появляются скрытые папки .fseventsd и .Spotlight-V100 (журнал событий файловой системы и индекс Spotlight), после удаления файла добавляется .Trashes, а на FAT и exFAT рядом с каждым скопированным файлом ложится его тень с приставкой «._», где мак хранит метаданные. Выходит, что мак пишет на флешку, даже если вы с нее только читали.
Windows, кстати, тоже так умеет, и папка System Volume Information с файлами IndexerVolumeGuid и WPSettings.dat появляется даже на флешках, на которые никто ничего не копировал. Аргумент «я же с нее только читала» поэтому работает хуже, чем кажется, хотя эти служебные записи маленькие и попасть выдергиванием точно в них надо еще постараться.
Совы не то, чем кажутся
Допустим, система все сбросила, том размонтирован, грязный бит снят. Тут мне уже самой стало интересно, что происходит внутри самой флешки, и я полезла туда просто из любопытства.
Внутри флешки сидит контроллер, у которого своя жизнь. NAND-память пишется страницами, а стирается только целыми блоками, поэтому контроллер держит таблицу соответствия между логическими адресами, которые видит компьютер, и физическими страницами, раскидывает запись по разным блокам, чтобы они изнашивались равномерно, и в фоне собирает мусор, переписывая живые страницы из полупустых блоков, чтобы освободить блок под стирание. Таблица соответствия хранится в той же NAND и тоже периодически переписывается. Если питание пропадет ровно в момент, когда контроллер ее обновляет, флешка может превратиться в устройство, которое определяется с объемом 0 байт или предлагает вставить диск, хотя вставлено уже все, что можно.
Насколько часто это случается и насколько хорошо конкретный контроллер переживает внезапное отключение, хз, потому что производители дешевых флешек защиту от потери питания не документируют, а конденсаторы, которые ради этого ставят в серверные SSD, во флешку за три копейки явно никто не положил. Насколько я смогла выяснить, при безопасном извлечении Windows просит сбросить кэш и само устройство (флешки общаются с компьютером урезанным SCSI поверх USB Mass Storage, и для этого там есть команда SYNCHRONIZE CACHE), но что контроллер после этой команды делает со своей фоновой уборкой, знает только его прошивка. Моя личная статистика по убитым ушедшим на покой флешкам такая: из примерно двух десятков, которые прошли через мои руки, умерли три, причем у одной просто отломился разъем, вторая после пары лет ежедневной работы перешла в режим только для чтения (так многие контроллеры сообщают, что память изношена), а третья однажды утром стала определяться с объемом 0 байт, и связать хоть одну из этих смертей именно с выдергиванием я честно не могу.
Что на самом деле делает значок в трее
С быстрым удалением в Windows у кнопки остается не так много работы. Она дописывает то, что еще не дописано, размонтирует том и снимает грязный бит, а перед этим проверяет, держит ли какой-нибудь процесс открытым файл на флешке. Вот эта последняя проверка и выдает знаменитое «Устройство еще используется», которое обычно означает, что флешку сканирует антивирус, Проводник строит миниатюры или в Word открыт документ прямо с флешки. Word, кстати, кладет рядом с документом скрытый файл блокировки с приставкой «~$», и если выдернуть флешку, пока документ открыт, Word ругнется при следующем сохранении, а файл блокировки так и останется на флешке мусором.
В Windows безопасное извлечение действительно превратилось в ритуал, из которого ушла большая часть смысла, но одна полезная примета в нем осталась: если система отказывается отдавать флешку, значит, кто-то на нее еще смотрит, и дергать ее в этот момент как раз не стоит. На Linux и маке ритуал по-прежнему делает настоящую работу, и пропускать его там значит полагаться на то, что ядро успело.
Коллеге я, кстати, результаты так и не показала. Флешки из Windows-ноутбука я выдергиваю по-прежнему, а на Linux перед этим набираю sync и терпеливо жду, пока он вернет управление, и со стороны это, подозреваю, выглядит еще ритуальнее, чем ее щелчок по значку в трее.
Комментарии (134)

LiamBlue
27.09.2026 05:25Не следует лезть в такие дебри и исследования - безопасно ли на самом деле вытаскивать флешку без отключения или нет. Есть известная, установленная правильная процедура, согласно которой надо нажать на иконку в трее. Её и надо придерживаться в любых обстоятельствах.
Понимаете - то, что вы будете лезть в дебри, гадать что-то там, выяснять - тут можно и облажаться. Что-нибудь не учесть, какой-нибудь неизвестный фактор сыграет. Оно не надо такое. Если вы соблюдаете процедуру - вы получаете гарантированный результат. Вот бы ещё разработчики винды позволили не делать лишних кликов - а сразу сделали кнопку на видном месте, отключающую флешку. Или иконку на рабочем столе/меню пуск. Причём сделали всё это настраиваемой возможностью, а не изначально существующей фичей. Очень жаль, что в Windows 11 нету Quick Launch bar на панели задач.

gazkom
27.09.2026 05:25Настраиваемая фича: вытаскиваешь на рабочий стол диск, который USB drive. При необходимости безопасно извлечь, нажимаешь на нем правой кнопкой мыши и выбираешь eject.

Wesha
27.09.2026 05:25вытаскиваешь на рабочий стол диск
Как-то Сисадмин спросил:
— Учитель, не желаете ли красивую картинку для вашего десктопа? У меня есть хорошая коллекция обоев для рабочего стола со звездным небом и моральным законом.
— Почему ты думаешь, что мой нынешний wallpaper хуже? — спросил в ответ Инь Фу Во.
— Я не знаю, какая у вас картинка сейчас. Я никогда не видел вашего десктопа. У вас всегда открыто множество окон.
— Я тоже его никогда не видел, — сказал Инь. — Я работаю.

JBFW
27.09.2026 05:25Проблема с "безопасным извлечением" в том, что это достаточно долго и требует телодвижений: отвлечься, подвести мышу куда надо, нажать (а теперь еще нажать ДРУГУЮ кнопку и ВЫБРАТЬ)
Сравните с действием "выдернуть".
Тогда уж лучше настроить хоткей, чтобы при нажатии на него сначала само вылезло ругательное окошко, и вот только если в нем нажата правильная кнопка - оно отмонтировалось бы и написало "готово". Это быстрее - и то всё будут заб
иывать

MountainGoat
27.09.2026 05:25Или иконку на рабочем столе/меню пуск.
Или ставите SysInternals и там есть sync.exe.
sync.exe -e E:Или можно обойтись powershell (но не тестил)
$v = Get-CimInstance Win32_Volume -Filter "DriveLetter='E:'" Invoke-CimMethod -InputObject $v -MethodName Dismount -Arguments @{ Force = $true; Permanent = $false }

qvvah
27.09.2026 05:25Закрепить в панель задач или "Пуск" ярлык на
rundll32.exe shell32.dll,Control_RunDLL hotplug.dll, как вариант; либо использовать утилиты, заменяющие панель задач, которые вернут в Windows 11 утраченную функциональность.

MountainGoat
27.09.2026 05:25У винды в свойствах флешки можно отключить кеширование и оставить немедленную запись. Если любите выдёргивать флешки, то включите и не парьтесь.

saege5b
27.09.2026 05:25Не без глюков.
Что Форточки, что пингвин, именно флешку воспринимают как чужеродное нечто.
Для любителей выдёргивать лучше обзавестись качественным ССД в формфакторе флешки.

LeraKholod
27.09.2026 05:25Как вариант, только вот ценник на такой девайс обычно отпугивает любителей дешевых решений)

Ndochp
27.09.2026 05:25300 рублей за переходник и ssd 60 gb с позапрошлого компа

randomsimplenumber
27.09.2026 05:25То есть лично вам ssd бесплатно достался.

Ndochp
27.09.2026 05:25Ну кажется ССД уже довольно давно на рынке, чтобы обрасти ненужными прошлых поколений. Это как с телефонами. (но не бесплатно. Тысяч 3-5 я за него в свое время отдал)

litos
27.09.2026 05:25Безопасное отключение еще по идее может питание порта отключать, куда уж безопаснее и полезнее для электроники

Tomasina
27.09.2026 05:25За эти годы ни разу не видел чтобы после безопасного отключения порт обесточивался. Даже на брендовых материнках.

Siemargl
27.09.2026 05:25есть
светодиодики очень часто есть на съемных hdd/ssd, гаснут после команды изымания

Dozer88
27.09.2026 05:25Это же не светодиод питания

Siemargl
27.09.2026 05:25светится когда запитан, моргает при чтении/записи

vros
27.09.2026 05:25Когда запитан или когда драйвера с контроллером договорились? Если воткнуть в блок питания - огонек загорится? А то, что моргает во время работы - как раз намек, что это не просто наличие питания.

Sergey_datex
27.09.2026 05:25питание не снимается. светодиод тушит прошивка, потому что с девайсом нет соединения. не выдумывайте то чего нет

Okeu
27.09.2026 05:25тут посыл в том, что диод может стоять уже во внутренней логике устройства.
А учитывая, что он обычно моргает при чтении\записи, наверняка он и стоит где-то за контроллером, на одной из ножек. Так вот если контроллеру пришла команда "спать", и диод потух, это ведь не значит, что сама шина USB обесточена, на ней по-прежнему есть токУПД: не дочитал тред до конца, выше уже отписали(

tonyrouge
27.09.2026 05:25Зачем-то вспомнил, что в бытность ХР при безопасном извлечении флешки светодиод на оной гас, а как поставил 7 в 2009 — ни разу более такого не видел, тыкай безопасное извлечение не тыкай, светодиод гореть будет. Вроде даже НЖМД внешние не останавливались и после «безопасного» извлечения визжали аварийной парковкой.
В линуксах строго замечал, что флешка гаснет.

K0styan
27.09.2026 05:25Есть такое. Они теперь тоже останавливаются, но, видимо, уже сами, по своей внутренней логике - где-то через пол-минуты - минуту после безопасного извлечения.

vadimk91
27.09.2026 05:25Кстати да, у меня есть старая флэшка Diesel с индикатором, который показывает и обмен и питание, можно понять, когда ее можно выдернуть. У современных увы такого нет, наверное на светодиодах экономят (ага, полцента).

Dhwtj
27.09.2026 05:25Тоже ориентируюсь на индикатор на флешке или возле разъема. Погаснет и плюс ещё секунда и можно вынимать

Moog_Prodigy
27.09.2026 05:25Индикатор обмена встречаю сейчас везде, даже на самых дешевых китайских флешках. Даже на подделках (это которые прикидываются 32 гб а по факту там 2 гб). Не знаю, кто уж там на чем экономит.
Кстати на брендированных флешках такой светодиод можно и не увидеть - или корпус непрозрачный и окошко не вывели, то ли берут самый древний дешман без индикатора.
А вот с MicroSD ситуация как в посте. Да и нечасто мы эту мелочевку туда-сюда вставляем, в отличие от обычных.

rrrrt7
27.09.2026 05:25Один раз я себе так материнку спалил, неудачно выдернув флэшку. Бес его знает, отключается ли там порт или нет, но как-то спокойнее.

PsihXMak
27.09.2026 05:25В новых дорогих материнках, обычно, стоит нормальная защита по току на USB. У нас был случай, когда на метеринках горели USB 2.0, при этом 3.0 оставались целые. По видимому, там была разная разводка по питанию.

Popadanec
27.09.2026 05:25На многих ноутах защитой обычно и не пахнет, а т.к. usb идёт напрямую в процессор, это одна из популярных причин их смерти(по отзывам сервисов).

MountainGoat
27.09.2026 05:25Вот пример. Парень вставил куда не надо. По ноутбуку как Мамай прошёл. Повыгорала куча вспомогательных чипов. и Процессор.

PsihXMak
27.09.2026 05:25В теории, если замкнуть питание на шину, можно убить и процессор.
Я взял первую попавшуюся схему и тут стоит usb напрямую в Z370Скрытый текст

Если это usb 2, то один ампер ещё не так страшно
Скрытый текст

А если usb 3, то там аж 5.6 ампера
Скрытый текст


geher
27.09.2026 05:25Безопасное отключение еще по идее может питание порта отключать
В теории может (и вроде даже кое-где делает для экономии энергии), но при размонтировании не отключает (по крайней мере сразу). В реальности оно вроде посылает команду на выключение устройству, и устройство "у нутре" само выключает свое питание. Но не все устройства так умеют (в том числе контроллеры внешних жестких дисков, не говоря уже о флэшках).

ptr128
27.09.2026 05:25Это было бы странно, так как новому устройству, подключённому к этому же порту, питание с этого порта получить было бы невозможно.

kh0
27.09.2026 05:25а как тогда узнать, что к порту подключен новый девайс?
в режиме питания не могу вспомнить ни одного usb-устройства, которому бы это вредило. Ну может жесткий диск будет вечно крутиться, подключенный через переходник. Но это надо его месяцами в порту держать, чтобы возможно это как-то на него повлияло.

garwall
27.09.2026 05:25в линуксе еще можно принудительно скинуть на диск страничный кэш командой
sync- как отработало, так и скинулось.
RulenBagdasis
27.09.2026 05:25В Cinnamon флэшка извлекается одним кликом, после чего системная всплывающая подсказка говорит о том, можно или нельзя её сейчас выдёргивать. Если нельзя, то потом скажет, когда можно будет, если я ничего не путаю. sync удобнее, только если я флэшкой в консоли работать изначально, имхо.


WinLin2
27.09.2026 05:25Пользоаателям нужно сказать, чтобы открыли консоль, набрали sync, подождали завершения и так каждый раз. Пользователи итак злые. Нужно упырей отечественных, собирающих большие деньги напрягать.

trilirium
27.09.2026 05:25Флэшки -- это чужеродное Маку устройство. )))
Во времена, когда основным носителем была дискетка -- проблема решалась радикальнее. На флоповодах у Мака просто не было кнопки извлечения! Вытолкнуть его из дисковода могла только сама MacOS. Естественно, пока все операции записи на носителе не закончены -- она его не вытолкнет. )))

salnicoff
27.09.2026 05:25Да, это было гениальное решение. Ни одна тупая секретарша не могла запороть файлы на дискете. Один только крсяк был: для выталкивания дискеты нало было ее иконку перетащить в мусорную корзинку... Что в 1984 году курили эппловские дизайнеры???
Kovurr
Битые файлы это еще полбеды. Прибегают юзеры с круглыми глазами, когда файловая система RAW и винда предлагает флешку отформатировать. "А у меня же там вся работа, вааа!". После чего файлы можно вытащить только специальными программами, и то без 100% гарантии. А все потому что человеку лень значок в трее нажать.
LeraKholod
И даже после восстановления они в 9 случаях из 10 продолжают делать ровно то же самое)
SargeT
Я один раз в жизни столкнулся с RAW вместо 500 Гб HDD, и очень огорчившись стал искать способы не "вытащить файлы", а восстановить всё как было. Не мог поверить, что структура просрана и невосстановима.
Из всех перепробованных утилит всё обратно в прежнем виде вернула китайская DiskGenius, причём буквально за секунды, дольше разбирался как это сделать.
Прошло лет много, может кто-то ещё научился это делать, но тогда, давно, — вот так. Просто поделился опытом.
Okeu
если он сделал это за секунды, то полагаю, что это было быстрое сканирование потерянных разделов, а делает он это путем поиска и перечитывания резервной GPT таблицы в конце диска, иначе сканировать ему придется весь диск, что долго и медленно
gdisk - вспомнил, им я флешки восстанавливал аналогично
yadowit
DMDE так же умеет делать. И тоже - дольше разбираешься "как".
Metotron0
И мне помогла DMDE в такой ситуации. Теперь всегда держу её рядом.