Ошибка EXT4-fs после обновления Ubuntu 17.04

У меня есть Dell XPS 15 9550 . Я работаю с Ubuntu 16.10 в течение четырех месяцев без драмы.

Два дня назад я перешел на Ubuntu 17.04 . Примерно через час после обновления мой жесткий диск переместился в режим только для чтения. Когда я прыгнул на экран, это выглядело следующим образом:

[ 746.341551] EXT4-fs error (device nvme0n1p7): ext4_find_entry:1463: inode #525023: comm NetworkManager: reading directory iblock 0 [ 746.343318] EXT4-fs error (device nvme0n1p7): ext4_find_entry:1463: inode #524289: comm pool: reading directory iblock 0 [ 746.356125] EXT4-fs error (device nvme0n1p7): ext4_find_entry:1463: inode #11272213: comm systemd-udevd: reading directory iblock 0 [ 746.356139] EXT4-fs error (device nvme0n1p7): ext4_find_entry:1463: inode #11272210: comm systemd-udevd: reading directory iblock 0 [ 746.356332] EXT4-fs error (device nvme0n1p7): ext4_find_entry:1463: inode #11272193: comm systemd-udevd: reading directory iblock 0 [ 746.356338] EXT4-fs error (device nvme0n1p7): ext4_find_entry:1463: inode #11272825: comm systemd-udevd: reading directory iblock 0 [ 746.356400] EXT4-fs error (device nvme0n1p7): ext4_find_entry:1463: inode #11272210: comm systemd-udevd: reading directory iblock 0 [ 746.474632] EXT4-fs error (device nvme0n1p7): ext4_find_entry:1463: inode #524539: comm unity-settings-: reading directory iblock 0 [ 746.992814] EXT4-fs error (device nvme0n1p7): ext4_find_entry:1463: inode #5506108: comm BrowserBlocking: reading directory iblock 0 [ 746.304451] EXT4-fs error (device nvme0n1p7): ext4_find_entry:1463: inode #5506117: comm BrowserBlocking: reading directory iblock 0 

Вот что показывает fdisk -l :

 Disk /dev/nvme0n1: 477 GiB, 512110190592 bytes, 1000215216 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 3CD27380-DAC8-48DC-910A-D084CE857DA3 Device Start End Sectors Size Type /dev/nvme0n1p1 2048 1026047 1024000 500M EFI System /dev/nvme0n1p2 1026048 1288191 262144 128M Microsoft reserved /dev/nvme0n1p3 1288192 487948287 486660096 232.1G Microsoft basic data /dev/nvme0n1p4 972302336 973223935 921600 450M Windows recovery environmen /dev/nvme0n1p5 973223936 998094847 24870912 11.9G Windows recovery environmen /dev/nvme0n1p6 998094848 1000204287 2109440 1G Windows recovery environmen /dev/nvme0n1p7 487948288 939046911 451098624 215.1G Linux filesystem /dev/nvme0n1p8 939046912 972302335 33255424 15.9G Linux swap Partition table entries are not in disk order. 

Я перезагрузился и продолжал получать ошибку примерно раз в час. Поэтому я переустановил Ubuntu 17.04 с нуля . Однако я все еще получаю ту же проблему.

Я попытался запустить fsck, создав файл / forcefsck (я создал сценарий оболочки оболочки, который добавляет флаг -v и выводит stdout в файл). Вот результат:

 fsck.fat 4.0 (2016-05-06) Checking we can access the last sector of the filesystem Boot sector contents: System ID "MSDOS5.0" Media byte 0xf8 (hard disk) 512 bytes per logical sector 4096 bytes per cluster 6206 reserved sectors First FAT starts at byte 3177472 (sector 6206) 2 FATs, 32 bit entries 508416 bytes per FAT (= 993 sectors) Root directory start at cluster 2 (arbitrary size) Data area starts at byte 4194304 (sector 8192) 126976 data clusters (520093696 bytes) 63 sectors/track, 255 heads 2048 hidden sectors 1024000 sectors total Reclaiming unconnected clusters. Checking free cluster summary. /dev/nvme0n1p1: 212 files, 15526/126976 clusters 

Я попытался загрузиться с живого USB и запустить e2fsck -p /dev/nvme0n1p7 как предлагается здесь ( https://askubuntu.com/a/768813/679041 ). Он не дал никаких ошибок.

Я также попытался запустить smartctl -t long /dev/nvme0n1p7 однако результаты, похоже, указывают на то, что инструмент не работает с моим конкретным SSD:

 smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.10.0-19-generic] (local build) Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION === Model Number: PM951 NVMe SAMSUNG 512GB Serial Number: S29PNX0H611013 Firmware Version: BXV77D0Q PCI Vendor/Subsystem ID: 0x144d IEEE OUI Identifier: 0x002538 Controller ID: 1 Number of Namespaces: 1 Namespace 1 Size/Capacity: 512,110,190,592 [512 GB] Namespace 1 Utilization: 254,982,533,120 [254 GB] Namespace 1 Formatted LBA Size: 512 Local Time is: Mon Apr 17 17:45:48 2017 AEST Firmware Updates (0x06): 3 Slots Optional Admin Commands (0x0017): Security Format Frmw_DL *Other* Optional NVM Commands (0x001f): Comp Wr_Unc DS_Mngmt Wr_Zero Sav/Sel_Feat Maximum Data Transfer Size: 32 Pages Supported Power States St Op Max Active Idle RL RT WL WT Ent_Lat Ex_Lat 0 + 6.00W - - 0 0 0 0 5 5 1 + 4.20W - - 1 1 1 1 30 30 2 + 3.10W - - 2 2 2 2 100 100 3 - 0.0700W - - 3 3 3 3 500 5000 4 - 0.0050W - - 4 4 4 4 2000 22000 Supported LBA Sizes (NSID 0x1) Id Fmt Data Metadt Rel_Perf 0 + 512 0 0 === START OF SMART DATA SECTION === Read NVMe SMART/Health Information failed: NVMe Status 0x2002 

Любая идея, почему эта проблема может возникнуть и как я могу ее решить? Благодаря! 🙂

Как указано в комментарии Старейшины Гика, это связано с известной ошибкой .

Из отчета об ошибке:

Поддержка APST только что приземлилась в последнем ядре Zesty (4.10.0-14.16) в составе https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1664602 . У этого исправления есть причуда для некоторых 256-гигабайтных дисков Samsung, найденных в ноутбуках Dell, которые плохо себя ведут, когда APST включен. Я испытываю те же симптомы с тем же модельным ноутбуком, за исключением 512 ГБ Samsung. Перед ручным отключением APST диск умрет, и система спустится в пламени с ошибками ввода-вывода в течение 20-40 минут загрузки.

Пока не будет выполнено правильное исправление, предлагается обходное решение, включающее добавление параметра ядра :

Попробуйте nvme_core.default_ps_max_latency_us=5500 , если проблема не nvme_core.default_ps_max_latency_us=200 попробуйте nvme_core.default_ps_max_latency_us=200 .

Чтобы добавить параметр загрузки ядра, отредактируйте файл конфигурации для GRUB:

 sudo nano /etc/default/grub 

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

 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nvme_core.default_ps_max_latency_us=5500" 

Сохраните файл и выйдите, затем, чтобы сделать изменение эффективным, запустите

 sudo update-grub 

Во-первых, я бы посетил веб-сайт поддержки Samsung и заверил, что у вас установлена ​​последняя прошивка для вашей модели SSD.

Тогда ваш fsck не имел большого смысла, так что делайте это так …

Чтобы проверить файловую систему на вашем разделе Ubuntu …

  • загрузка в меню GRUB
  • выберите «Дополнительные параметры»
  • выберите режим восстановления
  • выберите Root access
  • в командной строке # введите sudo fsck -f /
  • повторите команду fsck, если возникли ошибки
  • reboot типа

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

Подождите! прежде чем вы начнете пытаться это сделать, я должен подчеркнуть, что, если вы не уверены, что знаете точно, что вы делаете и как восстанавливаться после непредвиденных последствий, настоятельно рекомендуется делать резервную копию.

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

Примечание. Если вы сняли первое предложение, этот ответ основан на исследованиях, а не на тестировании. Если он сломается, восстановите резервную копию.