Когда я перезагружаю свой ПК после обновления Windows, мой терминал Ubuntu больше не может просматривать данные на моих жестких дисках C и D файла mnt. Когда я использую ls
его, он выдает.
:/mnt$ls
ls: cannot access 'd': Input/output error
ls: cannot access 'c': Input/output error
Я попытался решить эту проблему с помощью fsck
команды и получил следующие результаты:
:/mnt$sudo fsck
fsck from util-linux 2.34
fsck.ext4: Unable to resolve 'LABEL=cloudimg-rootfs'
Все еще гуглю, но если кто-то, кто с этим уже сталкивался, сможет помочь, буду признателен.
решение1
Непоследовательное крепление и/etc/fstab
Я начал видеть Read-only file system
сообщения об ошибках и обнаружил, что смонтированное мной корневое устройство не соответствует указанному в /etc/fstab
.
$ mount | grep ext4
/dev/sdc on / type ext4 (rw,relatime,discard,errors=remount-ro,data=ordered)
$ cat /etc/fstab
/dev/sda / ext4 defaults 0 0
Интересно то, что я мог писать минуту или две, но со временем начинались ошибки.
Предыдущая ошибка
Пару месяцев назад я /etc/fstab
вручную модифицировал свой, изначально он был таким:
$ cat /etc/fstab
LABEL=cloudimg-rootfs / ext4 defaults 0 0
Я изменил его, чтобы напрямую ссылаться на, /dev/sda
потому что в моей системе не было маркированного устройства. Я не знаю, откуда cloudimg-rootfs
взялась метка. Мой диск WSL2 изначально был создан с помощью WSL1, может быть, они так маркировали диск? Потом WSL2 убрал ее?
Некоторое время это работало нормально, но недавно я начал получать Read-only file system
сообщения об ошибках.
В этот момент я заметил, что мой корневой диск изменился на /dev/sdc
&, на который я все еще ссылаюсь /dev/sda
в /etc/fstab
.
Исправить
Я вспомнил свою модификацию /etc/fstab
и вспомнил, что она относилась к LABEL
, а не к диску.
- В 2-минутном окне я изменил
/etc/fstab
ссылку на новый корневой диск fs:/dev/sdc / ext4 defaults 0 0
- Перезапустить wsl
- проверьте, что буквы дисков между
mount
&/etc/fstab
соответствуют друг другу после перезагрузки. В этот момент я смог записать в файловую систему без каких-либо ошибок. - добавить метку на мой корневой диск fs (в моем случае
/dev/sdc
):sudo e2label /dev/sdc "ROOTFS"
- Убедитесь, что метка была изменена
$ sudo blkid -o list
device fs_type label mount point UUID
-----------------------------------------------------------------------------------------------------------------------
/dev/sda ext4 (in use)
/dev/sdb swap [SWAP] 4906c2f2-XXX-YYY-ZZZ-aa65bf88a5c3
/dev/sdc ext4 ROOTFS / 3255683f-XXX-YYY-ZZZ-b4c1041e2a62
- изменить
/etc/fstab
, чтобы ссылаться на мою новую метку:LABEL=ROOTFS / ext4 defaults 0 0
- перезапустить wsl
- убедиться, что теперь я могу записывать в корневую файловую систему.
Теперь, поскольку метка остается той же между перезагрузками, fstab
проблем возникнуть не должно.
Все хорошо!
решение2
Попробуйте проверить питание диска.
часто это вызвано слишком малой выходной мощностью; возможно, ваш блок питания настроен на энергосбережение (по какой-то причине?) или электрическая розетка может быть странной/слабой
почему такой ответ? У меня была та же проблема; и спустя годыда летисключения вещей и т. д.; я внезапно обнаружил - это было мое power outlet
и достаточно забавно, что проблема решилась сама собой, перевернув кабель (примечание: это может быть не ваш случай) Но ошибки; очень похожи на проблему с питанием. проверьте кабели и т. п.; и режимы питания. Настроен ли BIOS как SavePower? если да; попробуйте изменить на обычный или как он был раньше.
как некоторые отметили; быстрая загрузка/спящий режим/двойная загрузка могут быть проблематичными; используйте LIVE iso (linux), чтобы сначала создать образ (не копируйте файл за файлом) в качестве резервной копии; если это сработает;
Ссылки
Ошибка ввода/вывода на внешнем жестком диске и поврежденные сектора
если возможно; было бы полезно запустить
sudo dmesg
и
sudo journalctl
и опубликуйте вывод (редактированиелюбая конфиденциальная информация) когда вы включаете его и ждете немного; пока проблема не возникнет снова; или когда вы открываете терминал и вводите текст, ls
и он появляется;