Спящий режим и загрузка в другую ОС: будут ли повреждены мои файловые системы?


52

ВАЖНЫЙ

Если вы пришли сюда в поисках ответа на этот вопрос, пожалуйста, прочитайте все ответы ниже. Есть некоторые отзывы от людей, которые потеряли данные, делающие это. Если вы планируете делать это регулярно, я настоятельно рекомендую вам проверить себя.


Оригинальный вопрос

Предположим, у меня Windows и Linux установлены на одном компьютере. Если я перехожу в спящий режим Windows, могу ли я загрузить Linux без повреждения файловой системы Windows при возобновлении работы Windows? А как же наоборот? Что, если я перехожу в спящий режим, загружаюсь в другой и монтирую файловую систему для чтения / записи в спящий режим? Только для чтения? Если это небезопасно, есть ли способ обнаружить спящий режим другой ОС и предотвратить монтирование ее файловой системы?

В принципе, как далеко я могу продвинуть это до того, как оно сломается, и насколько это опасно у края? Я думаю, что я знаю ответы на некоторые из вышеупомянутых вопросов, но для других я понятия не имею, и по очевидным причинам я не проверял это на своем собственном компьютере. Если кто - то был протестирован этим, пожалуйста , просветите всех нас. Я не обязательно ищу конкретный ответ на каждый вопрос; Я приму любой ответ, который отвечает разумной части.


РЕДАКТИРОВАТЬ

Позвольте мне уточнить, что когда я говорю «спящий режим», я имею в виду процесс записи содержимого ОЗУ на жесткий диск и полного выключения компьютера. В этом состоянии при повторном включении компьютера вы снова получаете доступ к BIOS и загрузчику, и теоретически вы можете выбрать другую операционную систему в мультизагрузочной системе. Во всяком случае, с оригинальным вопросом:


Мои результаты

Хорошо, после всех заверений, что это будет работать, я проверил это для себя. Я настроил Ubuntu для перемонтирования всех файловых систем ntfs и внешних дисков только для чтения перед переходом в спящий режим. Не было необходимости в подобной установке Windows, потому что Windows не читает файловые системы Linux. Затем я попытался поочередно перевести одну операционную систему в спящий режим и возобновить работу другой, несколько раз назад и вперед. Я даже попытался смонтировать файловую систему Windows из Ubuntu для чтения и записи и создать несколько файлов. Windows не жаловался, когда я возобновил. Итак, в заключение, вы можете более или менее свободно переходить в спящий режим в сценарии двойной загрузки Windows / Linux.

Обратите внимание, что я не тестировал двойную совместную ситуацию Linux / Linux. Если у вас есть две или более установки Linux, и вы переводите одну из них в спящий режим, вы можете повредить файловую систему, смонтировав ее из другой.


1
Я хотел бы уточнить, что я ищу кого-то, кто на самом деле проверял эти и подобные вопросы эмпирически . Но, если это не удастся, не стесняйтесь спекулировать. Если ни у кого нет реальных результатов испытаний, я приму самые вероятные предположения через некоторое время.
Райан Томпсон

Ну, я скоро попробую проверить некоторые из этих идей. Если я получу машину, которая все еще загружается, я вернусь и приму ответ. ;)
Райан Томпсон


@RyanThompson, как бы вы это надежно протестировали? Конечно, это может выглядеть так, будто работает, пока не работает.
Pacerier

Вот почему я отметил ответ «Не делай этого, ты потеряешь данные» как принятый.
Райан Томпсон

Ответы:


17

Загрузка Windows через спящий Linux не очень хорошая идея. Я только что потерял 20 ГиБ данных в общем разделе NTFS ...

Однажды я спал Ubuntu Lucid, а на следующий раз включил свой компьютер. Некоторое обновление испортило сохраненную опцию в Grub, поэтому вместо того, чтобы снова загружать Ubuntu, как это должно быть, она запустила Windows 7. Когда я вернулся с кофе, я просто продолжил использовать его, не вспоминая, что Ubuntu находился в медвежьем режиме. Я, вероятно, получил доступ к музыке, профилю Firefox, документам, загрузкам и играм из общего раздела.

В следующий раз, когда я переключился на Ubuntu, я увидел сообщение «просыпаться из спящего режима». Dang. Но я ожидал, что при пробуждении произойдет сбой и произойдет мягкая перезагрузка, как это произошло в прошлый раз, когда я «попробовал» это (в мои кармические времена). Но нет, он проснулся хорошо. Здорово. Или нет. Я быстро понял, что каталог в корне общего раздела теперь пуст. Я думаю, что единственными программами, обращающимися к общему разделу при возобновлении, были Quod Libet (музыкальный проигрыватель) и Transmission (битторрент-клиент).

Я вернулся в Windows, где я даже не мог открыть каталог. Попытка "dir" это в оболочке произвела "файл не найден". Поврежденный. Тем не менее, свободное пространство раздела не увеличилось, поэтому мои 20 ГиБ, где, вероятно, все еще там, защищены от перезаписи. Может быть. Но как к ним добраться?

Небольшое исследование оказало небольшую помощь и сделало мои надежды еще более мрачными.

Я запускал Scandisk («Проверка на наличие ошибок») без автоматического восстановления, так как не хотел рисковать, исправляя ошибки, уничтожая мои данные. Результат оказался не очень информативным: «Обнаружены ошибки. Пробег с автосервисом». Неизвестный мне, по-видимому, он также пометил раздел для автоматической проверки при следующей загрузке. Я выключил питание и ушел, а позже вернулся с EasyRecovery.

Компьютер начал с того, что я не обращал внимания, как обычно, и когда я посмотрел, chkdsk уже извергал ошибки в полном разгаре, что и происходило в течение десяти минут. Ну что ж, здесь ничего не идет.

К счастью, я недавно зажег свечу для Санта-Теклы, и после запуска Windows мои данные вернулись, насколько я могу судить, но все файлы оказались в Found.000.

Так что да, это был счастливый конец. Вы простите драматическое ожидание, но это важно для решения проблемы: сделайте резервную копию ваших данных! И (в моем случае) держать резервную копию в актуальном состоянии! И, конечно, будьте особенно осторожны с гибернацией и общими разделами ...


5
Я собираюсь отметить это как принятый ответ только из-за ошибки из-за осторожности для новых пользователей, читающих этот вопрос.
Райан Томпсон

Обновления, вызванные одной ОС, влияющей на другую, довольно нормальны и на самом деле не вызваны проблемами с гибернацией. Состояние гибернации рассматривается как любой другой файл в файловой системе. Не могу понять, почему этот ответ был принят.
Мэтт H

1
Весь каталог, исчезающий в подвешенном состоянии FAT, не является «обновлением, вызванным одной ОС», по крайней мере, не преднамеренным. Я испытал повреждение данных в общем разделе NTFS после гибернации Linux, загрузки Windows, а затем пробуждения Linux, просто так.
Чема

2
Гибернация одной ОС и монтирование одного и того же раздела в другой означает, что две операционные системы получают доступ к диску одновременно. Они не знают об изменениях, которые внес другой, поэтому приведет к коррупции.
psusi 29.09.13

2
Мне кажется, что проблема в том, что ОС оставляет раздел в «нечистом» состоянии. В Windows есть возможность не кэшировать записи, может быть, это помогает, может быть, есть аналогичная опция в Linux. Или, может быть, мы можем найти способ заставить систему «очистить» раздел перед сном.
Рольф

23

Я всегда переводил Windows в спящий режим, прежде чем загружать что-либо еще, Windows слишком медленная, чтобы начинать с нуля. Но запись в раздел гибернационной ОС опасна , поскольку некоторые из таблиц FS все еще находятся в памяти (ну, в файле гибернации, но не в FS), приложения по-прежнему имеют дескрипторы для некоторых файлов, и обычно состояние файловой системы имеет вид нестабильный.

Но вы можете монтировать этот раздел только для чтения, таким образом, он останется таким же, как и до гибернации, и Windows ничего не заметит.

Что касается предложения о том, чтобы монтировать его нормально и просто держаться подальше от системных файлов, это не очень хорошая идея. Может произойти перемещение содержимого файла, может быть изменен MFT, будут изменены атрибуты времени доступа, все это может серьезно повредить файловую систему. Это не так опасно с FAT, но действительно очень опасно с NTFS, так как это намного сложнее и имеет гораздо больше состояния в памяти.


1
Вы уверены, что монтирование доступно только для чтения? Насколько я понимаю, при ведении журнала файловых систем даже монтирование только для чтения будет воспроизводить журнал и, таким образом, вызывать изменения в файловой системе. С другой стороны, единственная файловая система Linux, к которой вы можете получить доступ из Windows, - это ext2, которая не является jornaling, как и FAT, и Linux, по историческим причинам, вероятно, выполняет монтирование NTFS только для чтения. Так что, может быть , это безопасно. В любом случае, я бы хотел, чтобы у кого-то были конкретные результаты испытаний.
Райан Томпсон

2
Нет, когда FS монтируется только для чтения, на нем ничего не меняется. Вот почему он называется только для чтения :) Нет необходимости в журнале, поскольку он гарантирует, что состояние FS всегда корректно, но когда состояние не изменяется, это не нужно, поэтому журнал не используется. И это работает для меня уже довольно давно, так что вот ваши результаты тестирования :)
vava

1
"Windows слишком медленно, чтобы начать с нуля" Ты серьезно? Должно быть, я что-то делаю не так, потому что, когда мой ноутбук находится в спящем режиме, это увеличивает время загрузки примерно на 2 минуты или больше.
thepaulpage

1
Я говорил о XP, и да, он медленный, учитывая, сколько времени занимает от загрузки до рабочих приложений. Ubuntu 9.04 бегала кругами вокруг него. Ubuntu 9.10 по некоторым причинам намного медленнее.
Вава

начиная с Windows 8 и выше, загрузка Windows происходит молниеносно. Когда я использовал Windows 7, он загружается медленно, так что пока я не смогу запустить браузер, сеть уже доступна. Затем я обновился до Windows 8, и с тех пор, когда я пришел домой, включил маршрутизатор, затем включил ноутбук и браузеры. Мне пришлось долго ждать, прежде чем я смогу получить доступ к Интернету. Поскольку Windows 10 еще быстрее, нажмите Power, и через несколько секунд вы будете готовы
phuclv

9

Я регулярно сплю свою Windows XP и загружаюсь через USB в Ubuntu.
Работает без нареканий.

Существует разница между режимом ожидания и режимом гибернации.
Состояние ОС полностью сброшено на диск, и ваше оборудование выключено.
Если вы включите компьютер и загрузитесь в другую ОС, это не повлияет на спящий режим ОС.
Вы можете оставить столько ОС в спящем режиме, сколько захотите.

Например, у
вас может быть несколько установок Ubuntu (скажем, по одной на USB-флешку),
и, спячка каждого, отключите диск и загрузитесь в другую.
Здесь нет края, потому что нет эффекта суммирования / сцепления.
Все спящие USB-накопители в этих примерах не зависят друг от друга
(на машине с циклическим включением).

Небольшой недостаток спящего " C:\" диска и загрузки в другую ОС заключается в том, что
вы не сможете смонтировать загрузочный раздел гибернации в новой ОС.
Раздел будет заблокирован с зимовкой.
Он будет поврежден, если отредактирован в этом состоянии.


На самом деле вы не правы, в хорошем смысле! Я попытался перевести Windows в спящий режим и загрузиться в Ubuntu, а также смонтировать файловую систему Windows, и это работает без каких-либо повреждений при выходе Windows из спящего режима! Это удивило меня.
Райан Томпсон

ИМХО, люди, о которых говорят о коррупции, скорее всего, связаны с тем, что драйвер Linux NTFS не полностью совместим со всеми функциями NTFS. Лучше всего монтировать только для чтения.
Мэтт H

Хорошо, вы также хотели бы прочитать Насколько стабильна NTFS в Ubuntu?
Ник

Ник прав - не монтируйте раздел из другой ОС, он все еще монтируется в спящем режиме. Вы бы не смонтировали один и тот же раздел на двух виртуальных машинах (используя прямой доступ к разделам), работающих одновременно?
Бен Фойгт

8

Я могу подтвердить потерю данных с общим разделом NTFS. Я выполняю двойную загрузку между Lucid Lynx Ubuntu и Windows 7. После гибернации Windows 7 и загрузки в Ubuntu я приступил к созданию трех виртуальных машин VirtualBox (в течение 7 дней) и установил на них различные пакеты программного обеспечения. После перезапуска в Windows 7 файлы исчезли. Прошло. ntfsundelete и в первую очередь не смогли их найти.

Итак, я провел серию тестов, чтобы выяснить, действительно ли это привело к потере данных. При завершении работы Windows 7, запуске Ubuntu, записи некоторых файлов, перезапуске обратно в Windows 7 эти файлы всегда сохраняются. При переходе в спящий режим Windows 7, перезапуске в Ubuntu, записи некоторых файлов, перезапуске в Windows 7 новые файлы исчезают.

Я не знаю о ИЗМЕНЕНИЯХ, записанных в файл, сохранены они или потеряны, но новые файлы и папки, добавленные в общий раздел NTFS, скорее всего, будут потеряны в этой ситуации.


4

Нет ничего плохого в том, что вы упомянули. Даже если вы смонтировали спящую файловую систему, содержимое спящего режима сохраняется в большом файле на диске - если вы не трогаете этот файл или любые важные системные файлы (очевидно), то ничего не произойдет.

Если вы измените содержимое раздела из другой ОС после выключения системы, исходный раздел все равно загрузится без проблем. То же самое и в спящем режиме.

Просто убедитесь, что при монтировании / размонтировании раздела вы не повредите никакие системные файлы или информацию о заголовке диска (например, MBR, файловые журналы) - хотя этот пункт не имеет никакого отношения к гибернации, а больше касается общего предупреждения, которое нам всем нужно знать.


3
Мысленный эксперимент: что, если у вас есть документ или файл, открытый в приложении в Windows (например, вы редактируете документ Word), вы переходите в спящий режим и загружаетесь с другой ОС. Больше нет активной блокировки файлов, так как Linux знает, что он может безопасно что-то делать с файлом, поэтому, если вы решите, что он неправильно заполнен, и переместите его в другой каталог, Linux позволит вам. Когда вы загружаетесь обратно в Windows, что делает Word, если его файл внезапно исчез? Теперь подумайте, что произойдет, если этот файл будет более важным, чем документ Word? Установка только для чтения будет намного безопаснее.
GAThrawn

1
Это оказывается самый точный ответ. На самом деле вы можете монтировать и вносить изменения в диск Windows C, пока Windows находится в режиме гибернации, и он не будет жаловаться. Я не проверял это в Linux, но подозреваю, что это не сработает.
Райан Томпсон

@ Райан, ты можешь, но это не на 100% безопасно. NTFS может быть сломана слишком легко. Другая проблема заключается в том, что в Linux и Windows NTFS немного отличается, поэтому то, что работает с Windows, может не работать с Linux. Эти различия могут в конечном итоге привести к повреждению ФС, особенно в таком крайнем случае ФС.
vava

@ GAThrawn - Что делает Word? Попробуйте принудительно отредактировать документ Word под Windows и посмотрите, что произойдет. Программы существуют, чтобы удалить блокировки файлов. @vava - Пока вы используете программу / операционную систему, которая соответствует NTFS MFT и журналу, все должно быть в порядке.
Прорыв

Я знаю, что это не на 100% безопасно, но суть в том, что если я случайно смонтировать файловую систему Windows в Linux после перехода в спящий режим Windows, это не приведет к мгновенному и необратимому повреждению. Другими словами, мне бы пришлось приложить некоторые усилия, если бы я хотел выстрелить себе в ногу.
Райан Томпсон

4

Просто столкнулся с проблемой на общем физическом диске (FAT32) между Windows XP и Windows 7. Я перевел Windows XP, загрузился в Windows 7 на несколько дней, а затем вернулся к XP. Теперь у меня поврежденная файловая система на общем диске. Disk Checker запущен, и выглядит довольно плохо. В основном это файлы с перекрестными ссылками, но их тысячи.


3
Другими словами ... Если вы переходите в режим гибернации на диск, НЕ используйте общий диск. (или, если вы используете Linux, размонтируйте этот диск перед переходом в спящий режим)
Denilson Sá Maia

4

Это довольно старо, но, будучи критической проблемой, стоит добавить еще один отзыв.

У меня есть внешний жесткий диск NTFS USB, который я использую для данных (без файлов, связанных с ОС) с 2 разных ПК. Я имел обыкновение получать постоянную потерю данных на этом, пока я не изолировал проблему. Один из ПК довольно старый и медленный (Windows XP), поэтому я использовал спящий режим для ускорения перезапуска, отсоединения жесткого диска в этом состоянии и записи данных на другой ПК (Windows 7). Потеря данных происходила не каждый раз, но определенно была вызвана этим сценарием. С тех пор, как я перестал это делать, это никогда не повторилось.


Самая страшная вещь для меня: это похоже на диск с данными, верно? Таким образом, это даже не состояние самой ОС, которая находится в спящем режиме на этом USB-диске, а только данные? В этом случае я бы ожидал, что программное обеспечение будет правильно записывать данные на диск, когда получит сигнал о том, что ОС находится в спящем режиме. Но, видимо, нет ...
Арьян

1
Именно так. Это диск с данными. Нет связанных с ОС файлов на нем. Извините, что не подчеркнул это. На самом деле, именно поэтому я чувствовал, что мне нужно добавить свой вклад. Когда я впервые диагностировал это, мне сказали, что здравый смысл не делать, но, хотя я профессионал, это не выглядит очевидным, и этот сценарий, скорее всего, произойдет с внешними дисками. Я предполагаю, что причина, по которой это обычно не обсуждается, состоит в том, что немногие люди действительно идут на все, чтобы проанализировать и диагностировать это. Не говоря уже о докладе.
user3671607

Возможно, глупый вопрос: вы благополучно извлекли диск (например, файловый менеджер, щелкнули правой кнопкой мыши на устройстве и извлекли его) перед переходом в спящий режим или просто вытащили диск?
Gamen

Да, это глупый комментарий: как безопасно извлечь диск, когда компьютер находится в спящем режиме?
user3671607

3

У меня возникли проблемы с гибернацией и мультизагрузкой. Ситуация: Ubuntu и WinxP Multboot, но раздел данных видим для обеих ОС. Я провел некоторое тестирование ... туда-сюда ... Итак, я редактировал Wordfile с помощью Word ... Сохранял файл и закрывал Word. Hibernated ... запустил Ubuntu ... отредактировал тот же файл с помощью OpenOffice ... Hibernated.

Перезагрузился в спящий WinXP. Word не «увидел» изменения ... Он просто появился как другой файл ...

Я также сделал это тестирование наоборот ... Второй раз файл был поврежден ... Я не мог открыть файл или удалить файл Chkdsk "решил" проблему, но файл был потерян ... В другом тесте Ubuntu не сделал даже увидеть отредактированный файл.

ТАК, что при использовании гибернации и тех же разделов (НЕ обязательно должен быть раздел, с которого загружается ОС ...) это очень опасно ... Файлы могут и будут повреждаться в моих тестах, и я могу повторить это ... КСТАТИ: В моих тестах я ВСЕГДА сохранял файл и закрывал приложение (Word и OpenOffice) перед переходом в спящий режим ... !! Я думал, что монтирование раздела было причиной, но теперь я думаю, что проблема должна быть связана с кешированием файлов или чем-то еще ... В любом случае: будьте осторожны с мульти-ОС-гибернацией ... !! С уважением, АрноР


3

У меня был следующий крайне разрушительный опыт с двойной загрузкой Windows (Vista) и Ubuntu (9, 10, 11). Я не технический пользователь, хотя у меня большой опыт использования и настройки Windows и DOS. Я установил Ubuntu через live CD на машине с Win Vista. Это происходило безупречно, и у меня была двойная загрузка и работа в кратчайшие сроки. Поскольку к установке Ubuntu не было прикреплено никаких предупреждений, я (наивно) предположил, что могу переходить в спящий режим (сохранять на диск, не приостанавливать) обе системы и свободно переключаться между ними. Это имело следующие результаты:

1) Я сделал ошибку, отредактировав текстовый файл в Ubuntu, который я забыл открыть в Windows. После этого файл был недоступен для любой операционной системы. Он даже не мог быть удален. Chkdsk наконец удалил его, но мои данные были потеряны.

2) Я также попробовал две другие файловые операции из Ubuntu непосредственно в раздел Win: создание pdf-файла из OpenOffice и создание каталога / папки на рабочем столе Win. Оба были недоступны из Windows (хотя их можно было увидеть в Win explorer). К счастью, их можно было удалить из Ubuntu, хотя впоследствии пришлось запустить chkdsk, чтобы полностью удалить из Windows.

3) Большой файл OpenOffice Writer (сохраненный как * .doc), который редактировался сначала в одной, а затем в другой операционной системе несколько раз (он не был открыт в другой системе, когда я его редактировал), неожиданно увеличился в размере от от 2 до 7 МБ, что делает практически невозможным загрузку и сохранение. Когда я сохранил файл как документ * .odt, его размер был значительно уменьшен, но время сохранения / загрузки не было быстрее. Когда я распаковал файл, его раздел «содержимое» оказался более 22 МБ. Когда я получил к нему доступ с помощью текстового редактора, оказалось, что каждое отдельное слово и пробел в документе были отдельно отформатированы в одном и том же стиле! Я наконец решил проблему, сравнив гигантскую версию с более ранней версией того же файла, используя старую версию в качестве основы для сравнения, а затем приняв все изменения и сохранив их.

4) В этот момент я обновил Ubuntu 10 до Ubuntu 11 и обнаружил, что система 11 использует исключительно новый интерфейс Unity, что совершенно неприемлемо для моих целей. Когда я понял, как установить Gnome на Ubuntu 11, оказалось, что Gnome 3 намного уступает Gnome 2. Поэтому я решил полностью удалить Ubuntu и сделать новую установку Karmic Koala, которая использует Gnome 2 без каких-либо следов нового. Система единства. Это оказалось сложным, но после того, как я нашел те же самые инструкции, которые повторялись в нескольких руководствах онлайн, я продолжил. Все шло нормально, пока я не запустил EasyBCD 2.1.2 (из windows), что позволило бы мне перезагружаться непосредственно в Windows после удаления загрузчика Ubuntu Grub. При перезагрузке я обнаружил, что моя MBR была смертельно повреждена, и машина не распознала загрузочные жесткие диски.

5) Теперь я мог снова загрузиться в Vista, и я собирался переустановить Ubuntu, когда обнаружил, что ряд файлов начал исчезать из моей системы в случайном порядке. Очевидно, файловая система все еще была повреждена. Только полная переустановка Windows решила проблему, и сейчас я очень тщательно обдумываю, что мне следует делать, чтобы избежать подобных проблем в будущем, перед установкой Karmic Koala. Я надеюсь, что мои проблемы связаны с проблемой гибернации, но, конечно, я подумываю о создании отдельного «переносящего» раздела NTFS, где я могу помещать файлы из одной операционной системы, прежде чем получить к ним доступ из другой. Непрактично, но это должно быть безопасно. Я надеюсь.


2

Не делай этого (снова!)

Я спал в своей Vista / NTFS и загрузил Lucid, работал 3 дня на общем разделе ntfs, и начал исчезать или блокировать файлы и каталоги с неприятными сообщениями об ошибках (в пределах lucid). Когда я загрузился обратно в Windows, это был настоящий беспорядок, бесполезность рабочего стола и т. Д. Надеюсь, chkdsk смог исправить большую часть этого, и я выловил из found.000 около 98% того, что у меня было раньше.
Так что это определенно не очень хорошая вещь.
Я вроде помню, что раньше это было невозможно: «спящие» разделы ntfs не устанавливались в linux по какой-то (очевидно, хорошей) причине. Я хотел бы вернуться к этому старому поведению


2

ОПАСНОСТЬ! Я также могу подтвердить, что это тяжелая проблема для томов FAT32 и NTFS, и только когда Windows (у меня есть windows 7) находится в спящем режиме. Я думаю, что это связано с кэшированием и рассмотрел настройку диска для быстрого удаления. Это может исправить это, но я еще не пробовал, потому что я действительно хочу настроить только один раздел таким образом, который Windows, похоже, не поддерживает. Даже мой драйвер OSX ntfs поддерживает управление кэшем раздела, но не windows. Кроме того, мой драйвер OSX NTFS, кажется, признает, что диск не должен быть подключен. Кажется, связано с этим вопросом. Надеюсь, это поможет.


1
Да, это связано с кэшированием, и нет, «оптимизировать для быстрого удаления» не поможет. Это заставляет Windows записывать изменения немедленно, но Windows по-прежнему предполагает (опасно), что ее кэш чтения действителен на 100% и не увидит изменений, внесенных другими дисками в диск.
Бен Фойгт

1

Вот мой опыт. Я использую систему двойной загрузки с Windows и Kubuntu (11.04). Большинство моих файлов находятся в разделе Windows NTFS, и я использую в основном это из Linux. Он монтируется с помощью FUSE.

Это то, что произошло:

  1. Спящий Windows
  2. При следующей загрузке загрузился на Linux и использовал его пару недель - без загрузки Windows
  3. Загрузился обратно в Windows (потому что онлайн-тест работал только в Internet Explorer и больше ничего, так как ie4linux было недостаточно)

Когда Windows возобновила работу, я заметил, что все файлы, созданные за эти две недели, отсутствуют. Я перезагружен обратно в Linux, чтобы проверить, не найдены ли там и файлы. Я предполагаю, что Windows восстановила файловую систему NTFS до состояния, когда она находилась в спящем режиме, и вернула ее к тому моменту времени.

Я пробовал такие инструменты, как ntfsundelete и testdisk. Эти отсутствующие файлы не перечислены. Кроме того, Linux монтирует этот диск в режиме RW, даже когда Windows находилась в спящем режиме, а не выключалась. Я предполагаю, что Linux предупреждает или просто монтирует диск в режиме только для чтения, но здесь этого не произошло.


2
Существует метка на метаданных файловой системы, независимо от того, правильно ли они отключены или нет ... Я также думаю, что правильное поведение для драйвера Linux NTFS - проверить этот флаг.
Бен Фойгт

1

Я также могу подтвердить, что разделение некоторого несистемного раздела между двумя различными операционными системами в состоянии гибернации приводит к повреждению файловой системы и потере данных.

Сценарий: у меня есть 3 раздела NTFS: 1. Windows XP 2. Windows 7 3. Данные (я все еще должен использовать XP для старых приложений, которые не работают в режиме совместимости).

Пример: загрузитесь с раздела 1 (XP) и запустите Thunderbird, который хранит файлы на 3. Затем перейдите в режим гибернации (ОС сбрасывает ОЗУ в файл гибернации и выключает компьютер). Загрузитесь с раздела 2 (7) и запустите Thunderbird, который хранит файлы на 3. Здесь проблема начинается с доступа к файлам и т. Д., Иногда с или без chkdsk. Вернитесь к загрузке из раздела 1, и файлы, исправленные OS_2_7, снова будут повреждены, даже в худшем случае некоторые открытые файлы до гибернации (например, Firefox) теперь повреждены.

Так да. Hibernate два O / S, независимо от того, используют ли они системный / несистемный раздел, повредит данные. Почему ? Я предполагаю, что основной причиной является файл LOCK и MFT. После выхода из спящего режима O / S не обновляет MFT, поэтому по-прежнему предполагается найти файлы в старых секторах, поэтому любой файл, который изменил свой размер / место, будет поврежден.


Ну какие файлы испортились? Просто те, что принадлежат Thunderbird или нескольким несвязанным файлам? Может иметь (некоторый) смысл, что если Thunderbird запускается из одного и того же места в разделе 3, то в двух разных системах есть два разных набора данных. Один будет пытаться заставить другого.
Доктор Рейхард

0

Я делал именно это. Я никогда не монтировал системный диск гибернационной машины, чтобы избежать несчастных случаев, и у каждой ОС есть свой отдельный раздел подкачки. Однако у меня был выделенный раздел данных, который я бы использовал для передачи данных между двумя спящими ОС. Я даже разместил там свои профили Firefox и Thunderbird, поэтому мне не нужно хранить два отдельных профиля. Просто не забудьте закрыть Firefox на одном компьютере, прежде чем переходить в спящий режим.

Я не помню, чтобы когда-либо возникали какие-либо проблемы с настройкой, и я тоже использовал ее довольно долго.


Какую FS вы используете на общем разделе? Я начинаю думать, что, может быть, NTFS как-то связана с этим, все жалуются, что их общий NTFS-раздел искажается.
Рольф

@Rolf: NTFS с драйвером ntfs-3g для Linux. Кроме того, это был чисто раздел данных, за исключением приложений, таких как Firefox / Thunderbird, которые, как я знаю, содержат предупреждения о нечистом завершении работы, и которые я всегда закрывал перед переключением ОС.
Ли Райан

Может быть, FAT подойдет? NTFS лучше, но в этом случае он, кажется, не работает хорошо, если не сказать больше. Кроме того, если мы сможем заставить систему сбросить весь буфер на диск перед переходом в спящий режим, возможно, это поможет. Но я думаю, что было бы лучше поэкспериментировать с различными файловыми системами (EXT или другие могут также быть вариантами) для общего раздела. Если кто-то готов сделать это :) Может быть, на виртуальной машине? Кстати, я столкнулся с той же проблемой, используя виртуальную машину, сохраняя состояние, затем используя ту же виртуальную машину (тот же файл), но под другой ОС. Хост виртуальной машины не знал о сохраненном состоянии.
Рольф

1
Так что вы говорите, что если мы не забудем закрыть все файловые дескрипторы на общем разделе перед переходом в спящий режим, то все должно быть в порядке.
Рольф

0

Ответ таков: с NTFS, по-видимому, да (см. Другие ответы). Вы можете попробовать использовать более старые и простые файловые системы, такие как FAT. Но это будет удар в темноте.

Я просто хочу добавить, что проблема может быть воспроизведена на виртуальных машинах. Я использую VirtualBox на машине с двойной загрузкой. Я установил программное обеспечение хоста VirtualBox в разделах Windows и Linux и сохранил файлы изображений в общем разделе NTFS. Цель состояла в том, чтобы иметь возможность использовать одну и ту же виртуальную машину как в Windows, так и в Linux.

По привычке я использовал команду состояния «сохранить машину» в VirtualBox при выключении виртуальной машины. Я использовал эту команду (которая сохраняет состояние ОЗУ для ВМ где-то), перезагрузил свой ноутбук в другую ОС и снова использовал эту же ВМ. В VirtualBox не было никакой опции восстановления, поэтому, очевидно, VirtualBox не знает о сохраненном состоянии виртуальной машины, если состояние было сохранено с использованием другой установки VirtualBox. Я читал, что VMware может быть умнее, но я не пробовал.

В конце концов все мои виртуальные машины были повреждены. Однако я смог исправить большую часть урона с помощью fsck.

Это просто говорит о том, что вам не нужно тратить часы на разметку и установку ОС, чтобы воспроизвести эту проблему.

Мое решение? Отключен спящий режим в Windows. По умолчанию это отключено в Ubuntu. Также никогда не используйте функцию сохранения состояния машины для ВМ, если вы планируете запускать эту ВМ в другом контексте (другая ОС, установка другого хоста и т. Д.).

Пока кто-то не придумает файловую систему (или ОС, или что-то еще), которая не будет уязвима для этой проблемы.

Кроме того, закрывая все открытые дескрипторы на общем разделе (и, по-видимому, сбрасывая на диск) перед переходом в режим гибернации (или, я полагаю, размонтированием раздела - должен быть способ сделать это и в Windows), если сообщалось, что это позволяет избежать повреждения (см. Ответ Ли Райана). Я бы предпочел быть в безопасности и вообще не использовать hibernate в этой ситуации.


Состояние сохранения Virtual Box полностью отличается от режима гибернации. Сохранение состояния - это функция виртуальной машины, а не ОС. ОС совершенно не знает, когда происходит состояние сохранения. Состояние сохранения сохраняется не в образе виртуального диска, а в другом файле. Virtual Box фактически может восстановить сохраненное состояние на другой компьютер, это называется телепортированием.
Ли Райан

-3

Я просто не думаю, что это возможно.

Когда вы переходите в спящий режим, компьютер «блокируется» (из-за отсутствия лучшего термина) для этой ОС. Вы не в спящем режиме ОС, вы в спящем режиме весь компьютер. Когда выходить из режима гибернации, вы больше не проходите через BIOS и POST.


Я не говорю о приостановке в ОЗУ, я имею в виду спящий режим на диске. Я отредактирую вопрос, чтобы быть более конкретным.
Райан Томпсон

7
Кажется, неправильно для меня. Когда вы переходите в спящий режим, компьютер выключается. При повторном запуске он проходит через BIOS и POST. Только когда загрузчик ОС видит, что он находится в режиме гибернации, он загружает файл, содержащий состояние памяти (hiberfil.sys для Windows), и восстанавливает ОС.
Снарк

Нет, это вызовет проблемы с согласованностью файловой системы. Смотрите мой пост выше.
Натан Осман

@ Джордж: Там будут проблемы с согласованностью файловой системы, если вы разделяете какие-либо файловые системы между обеими ОС. Но вы, безусловно, можете запустить другую ОС, которая имеет собственный набор разделов, вопреки этому ответу.
Бен Фойгт

Если бы он не проходил через BIOS и POST, то не было бы возможности выбрать ОС при запуске и делать ошибки, подобные описанным здесь. Спящий режим не подвешен к барану.
Рольф
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.