Skip to main content

Диск Windows монтируется только для чтения (РЕШЕНО)

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

Тем не менее, иногда при попытке смонтировать диск Windows может возникнуть одна из двух ситуаций:

  • диск монтируется, но только для чтения. Специальное указание опция монтирования с правами записи не помогает
  • диск вовсе не монтируется из-за ошибки

К примеру, при попытке смонтировать диск:

1
sudo mount /dev/sdb4 /mnt/disk_e

может возникнуть ошибка, что диск доступен только для чтения:

1
2
3
4
5
The disk contains an unclean file system (0, 0).
Metadata kept in Windows cache, refused to mount.
Falling back to read-only mount because the NTFS partition is in an
unsafe state. Please resume and shutdown Windows fully (no hibernation
or fast restarting.)

А это пример ошибки, когда диск не смонтирован вовсе:

1
2
3
4
5
6
The disk contains an unclean file system (0, 0).
Metadata kept in Windows cache, refused to mount.
Failed to mount '/dev/sdb1': Операция не позволена
The NTFS partition is in an unsafe state. Please resume and shutdown
Windows fully (no hibernation or fast restarting), or mount the volume
read-only with the 'ro' mount option.

Для решения этой проблемы нужно начать с установки драйвера ntfs-3g. Во-первых, он в любом случае необходим для полноценного функционирования файловой системы NTFS в Linux. Во-вторых, в этот пакет включена утилита ntfsfix, которая может помочь решить проблемы с диском Windows.

Для установки в Debian, Linux Mint, Ubuntu, Kali Linux и их производные:

1
sudo apt install ntfs-3g

Для установки в Arch Linux и производные:

1
sudo pacman -S ntfs-3g

Затем вновь попробуйте смонтировать диск — вполне возможно, что в этом случае он будет доступен с правами записи.

Если вновь возникла проблема, то отмонтируйте диск и запустите команду вида:

1
sudo ntfsfix /ПУТЬ/ДО/ДИСКА

Пример команды для проверки и исправления проблемы с диском /dev/sdb4:

1
sudo ntfsfix /dev/sdb4

Пример вывода:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Mounting volume... The disk contains an unclean file system (0, 0).
Metadata kept in Windows cache, refused to mount.
FAILED
Attempting to correct errors...
Processing $MFT and $MFTMirr...
Reading $MFT... OK
Reading $MFTMirr... OK
Comparing $MFTMirr to $MFT... OK
Processing of $MFT and $MFTMirr completed successfully.
Setting required flags on partition... OK
Going to empty the journal ($LogFile)... OK
Checking the alternate boot sector... OK
NTFS volume version is 3.1.
NTFS partition /dev/sdb4 was processed successfully.

Команда выводит причину проблемы: диск содержит нечистую файловую систему. Метаданные, хранимые в кэше Windows, препятствуют монтированию.

Затем выполняется ряд операций, каждая из которых заканчивается статусом OK и наконец сообщение was processed successfully говорит о том, что всё прошло успешно.


После этого вновь попытайтесь смонтировать диск — всё должно быть нормально.

Решение ошибки «Windows is hibernated, refused to mount».

Выполнение рассмотренной команды

1
sudo ntfsfix /dev/sda4

может завершиться неудачей:

1
2
3
4
5
6
7
8
9
10
11
12
Mounting volume… Windows is hibernated, refused to mount.
FAILED
Attempting to correct errors…
Processing $MFT and $MFTMirr…
Reading $MFT… OK
Reading $MFTMirr… OK
Comparing $MFTMirr to $MFT… OK
Processing of $MFT and $MFTMirr completed successfully.
Setting required flags on partition… OK
Going to empty the journal ($LogFile)… OK
Windows is hibernated, refused to mount.
Remount failed: Operation not permitted

Обратите особое внимание на строку «Windows is hibernated, refused to mount» которая повторяется дважды. Она означает, что работа Windows завершилась гибернацией, такой диск не может быть смонтирован для записи. Если вы специально выключили компьютер таким образом, то перезагрузитесь и выключите без гибернация или быстрого запуска.

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


Гибернация Windows и быстрый перезапуск

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

Таким образом, Windows нельзя оставлять в режиме гибернации при запуске Linux, чтобы избежать несоответствий. Кроме того, необходимо отключить функцию быстрого перезапуска, доступную в последних системах Windows. Этого можно добиться, выполнив в качестве администратора команду Windows, которая отключает как гибернацию, так и быстрый перезапуск, а также удаляет файл hiberfile:

1
powercfg /h off

Если вы не хотите отключать гибернацию, то для одноразового выключения компьютера Windows без гибернация выключите его командой:

1
shutdown /s /t 0

Удаление файла гибернации

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

Пример команды с указанием опции remove_hiberfile:

1
sudo mount -t ntfs-3g -o remove_hiberfile /dev/sda2 /mnt/spide


Спасибо, что поделились решением! Вы абсолютно правы — `ntfsfix` действительно может решить эту проблему во многих случаях.

## Ваше решение

```bash
ntfsfix /dev/da0s1
```

После этого можно монтировать как обычно:
```bash
mount /dev/da0s1 /data/ntfs
```

## Что делает `ntfsfix`

Утилита `ntfsfix` (из пакета `ntfs-3g`) исправляет некоторые распространённые проблемы NTFS:

1. **Сбрасывает "грязный" флаг** (`dirty` flag) — тот самый флаг, который Windows оставляет после гибернации или быстрого запуска
2. **Восстанавливает журнал** ($LogFile)
3. **Проверяет основные структуры** NTFS

## Важное предупреждение

`ntfsfix` **не является полноценной заменой** `chkdsk` из Windows. Он:
- ✅ Убирает блокировку и позволяет монтировать раздел в режиме чтения-записи
- ⚠️ **Не проверяет** и не восстанавливает содержимое файлов
- ⚠️ Может замаскировать проблемы с файловой системой

## Как установить

```bash
pkg install ntfs-3g
```

## Когда `ntfsfix` работает, а когда нет

| Ситуация | ntfsfix поможет |
|----------|----------------|
| Гибернация Windows | ✅ Да |
| Быстрый запуск Windows | ✅ Да |
| Корректно выключенная Windows | ❌ Не нужен |
| Повреждённая MFT (Master File Table) | ❌ Нет, нужен `chkdsk /f` |
| Ошибки файловой системы | ❌ Нет, нужен `chkdsk` |

## Безопасная альтернатива

Если нет уверенности в целостности файловой системы:
```bash
# Монтирование только для чтения (безопасно)
mount -t ntfs -o ro /dev/da0s1 /data/ntfs

# Или с ntfsfix (разблокирует, но рискованно)
ntfsfix /dev/da0s1 && mount /dev/da0s1 /data/ntfs
```

**Запомнили:** `ntfsfix` — быстрое решение для разблокировки NTFS-раздела после Windows. Спасибо за совет!