Вопрос или проблема
Я прочитал другие вопросы, связанные с моей проблемой, но ничто, похоже, не решает её. У меня есть внешний USB жесткий диск (2TB Transcend), который я пытаюсь подключить. Ранее он работал нормально, я мог использовать жесткий диск. Проблема началась вчера, когда устройство не смогло смонтироваться, но уведомление (от udiskie) говорит, что устройство обнаружено. Я не знаю, что произошло, ведь 2 дня назад он работал хорошо, а вчера просто не заработал. Я использую Arch Linux.
$ uname -r
5.0.13-arch1-1-ARCH
$ pacman -Q linux
5.0.13.arch1-1
Устройство не отображается в fdisk
и lsblk
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 465.8G 0 disk
├─sda1 8:1 0 74.3G 0 part /
├─sda2 8:2 0 200M 0 part /boot
├─sda5 8:5 0 7.5G 0 part [SWAP]
└─sda6 8:6 0 383.8G 0 part /home
sr0 11:0 1 1024M 0 rom
# fdisk -l
Диск /dev/sda: 465.8 GiB, 500107862016 байт, 976773168 секторов
Модель диска: ST500DM002-1BD14
Единицы: сектора по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер ввода-вывода (минимальный/оптимальный): 4096 байт / 4096 байт
Тип метки диска: gpt
Идентификатор диска: 81A45AD8-92E8-44C0-8032-EF3D351997DF
Устройство Начало Конец Секторов Размер Тип
/dev/sda1 411648 156252159 155840512 74.3G Linux файловая система
/dev/sda2 2048 411647 409600 200M Linux файловая система
/dev/sda5 156252160 171874303 15622144 7.5G Linux swap
/dev/sda6 171876352 976771071 804894720 383.8G Linux файловая система
Записи таблицы разделов не находятся в порядке диска.
Это мой системный жесткий диск.
Но внешний жесткий диск определяется в lsusb
$ lsusb
Bus 002 Device 003: ID 04f2:1053 Chicony Electronics Co., Ltd
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 005: ID 8564:7000 Transcend Information, Inc. // Это он!
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
А dmesg
сообщает, что он пытался считать диск, но время ожидания истекло.
$ dmesg | tail -n 20
[ 1832.986654] usb 1-1.2: USB отключен, номер устройства 4 // Этот фрагмент, когда я отключил и снова подключил диск
[ 1833.084639] usb 1-1.2: новое высокоскоростное USB устройство с номером 5 использует ehci-pci
[ 1833.240367] usb 1-1.2: Новое USB устройство обнаружено, idVendor=8564, idProduct=7000, bcdDevice=80.00
[ 1833.240371] usb 1-1.2: Новые строки USB устройства: Mfr=2, Product=3, SerialNumber=1
[ 1833.240373] usb 1-1.2: Продукт: StoreJet Transcend
[ 1833.240375] usb 1-1.2: Производитель: StoreJet Transcend
[ 1833.240376] usb 1-1.2: Серийный номер: ÿÿÿÿtSroJeteT arsnec
[ 1833.240878] usb-storage 1-1.2:1.0: Устройство USB массового хранения обнаружено
[ 1833.241118] scsi host4: usb-storage 1-1.2:1.0
[ 1834.259269] scsi 4:0:0:0: Прямой доступ StoreJet Transcend 0 PQ: 0 ANSI: 6
[ 1834.260301] sd 4:0:0:0: [sdb] Очень большое устройство. Пытаемся использовать READ CAPACITY(16).
[ 1834.260795] sd 4:0:0:0: [sdb] Неподдерживаемый размер сектора 14712.
[ 1834.260802] sd 4:0:0:0: [sdb] 0 512-байтных логических блоков: (0 B/0 B)
[ 1834.260806] sd 4:0:0:0: [sdb] 14712-байтные физические блоки
[ 1834.261883] sd 4:0:0:0: [sdb] Защита записи отключена
[ 1834.261888] sd 4:0:0:0: [sdb] Режим ощущений: 43 00 00 00
[ 1834.262881] sd 4:0:0:0: [sdb] Кэш записи: включен, кэш чтения: включен, не поддерживает DPO или FUA
[ 1834.264261] sd 4:0:0:0: [sdb] Неподдерживаемый размер сектора 14712.
[ 1834.266260] sd 4:0:0:0: [sdb] Прикрепленный SCSI диск
[ 1864.287693] sd 4:0:0:0: время ожидания команды истекло, ждал 30с
Говорится Очень большое устройство. Пытаемся использовать READ CAPACITY(16).
и Неподдерживаемый размер сектора 14712.
. Что это значит? Как я могу хотя бы сделать резервную копию данных с него?
USB-накопители контролируются с помощью команд SCSI или блоков описателей команд (CDB).
Вначале ядро запрашивает емкость диска с использованием 10-байтового CDB, который является старой и более широко поддерживаемой формой. Но если ответ указывает, что размер диска не помещается в старый формат ответа, ядро живет сообщение Очень большое устройство. Пытаемся использовать READ CAPACITY(16)
и повторяет операцию с использованием новой команды, которая использует 16-байтовый CDB, который может обрабатывать большие размеры диска.
Сообщение Неподдерживаемый размер сектора 14712
является проблемой. Ядро Linux готово принимать размеры секторов 512, 1024, 2048 или 4096 байт. Значение 14712 байт не подходит ни под одно из этих значений. Когда встречен неподдерживаемый размер, драйвер диска SCSI устанавливает значение емкости диска в 0, чтобы запретить доступ к устройству, пока проблема с размером сектора не будет как-то решена (вероятно, с использованием инструмента, специфичного для производителя, для переформатирования диска с использованием другого размера сектора).
Этот странный размер сектора может быть ложным ответом, вызванным недостатком питания для диска (как предположил Алехандро Гальван Гомес в другом ответе). В этом случае использование другого USB-кабеля или порта может помочь.
Это также может быть признаком того, что диск вышел из строя. В этом случае, уже поздно думать о резервном копировании, если вы не удачливы и диск не удастся запуститься еще раз правильно.
У меня была такая же проблема с внешним жестким диском WD. После нескольких дней поиска в Google (без результатов) я понял, что поменял кабель (удлинитель, который я использовал для подключения к своему USB-порту). Я попробовал подключить его напрямую с оригинальным кабелем, и он заработал. Затем я попробовал несколько новых удлинителей до тех пор, пока не нашел тот, который сработал.
Это если вы пытаетесь смонтировать его с помощью того же USB-порта, в который подключали его раньше.
Это также проблема потребления энергии. Я пробовал его в других USB-портах, и он отображался в lsusb
и определялся в dmesg
, но не в fdisk
. Я нашел свой ответ здесь.
Диск необходимо разделить, чтобы его можно было использовать. Ваш диск будет виден с помощью (как root):
fdisk -l /dev/sdb
…если dmesg
не показал, что с ним может быть что-то не так. Но если вы получите содержательный вывод от этой команды, вы сможете разделить его и отформатировать.
Ответ или решение
Проблема, которую вы описали, связана с тем, что внешний жесткий диск, подключенный к вашему компьютеру, определяется системой на уровне USB, но не отображается на уровне блочных устройств, таких как fdisk
и lsblk
. Ниже приведены возможные причины и решения этой проблемы.
Возможные причины:
-
Проблема с кабелем или портом: Если вы использовали другой USB-кабель или порт, это может вызвать проблемы с передачей данных. Попробуйте подключить диск напрямую, без использования удлинителей, и проверьте другой USB-порт.
-
Проблема с питанием: Внешние жесткие диски могут потреблять больше энергии, чем могут обеспечить некоторые порты, особенно USB 2.0. Переключите диск в порт USB 3.0, если он доступен.
-
Некорректный ответ устройства: Сообщение
Unsupported sector size 14712
указывает на то, что устройство возвращает недопустимый размер сектора. Это может быть связано с ошибкой в самом диске или неправильно установленной файловой системой. -
Неисправность жесткого диска: Есть вероятность, что диск поврежден или испытывает аппаратные сбои. Это значит, что с ним может быть слишком поздно что-либо делать, кроме как попытаться восстановить данные, если это возможно.
Решения:
-
Проверка питания и подключения:
- Проверьте, работает ли диск с другим USB-кабелем.
- Попробуйте подключить жесткий диск к другому компьютеру, чтобы исключить проблемы с системой.
-
Проверка логов системы:
- Используйте команду
dmesg
для просмотра последних сообщений ядра. Это поможет вам понять, происходит ли какое-то событие при подключении устройства. - Если вы видите сообщения о тайм-ауте, это может указывать на физическую проблему с диском.
- Используйте команду
-
Использование утилиты
smartctl
:- Установите
smartmontools
, если он еще не установлен:sudo pacman -S smartmontools
- Проверьте состояние диска забирая информацию:
sudo smartctl -a /dev/sdb
- Это даст вам представление о состоянии жесткого диска и поможет выявить потенциальные проблемы.
- Установите
-
Попробуйте использовать
parted
для проверки разделов:- Если диск не отображается в
fdisk
илиlsblk
, это может означать, что на нем нет корректных разделов, или он неправильно отформатирован. Для проверки:sudo parted /dev/sdb print
- Если он отображается, попробуйте создать новое разделение или отформатировать его, учитывая, что это приведет к потере данных.
- Если диск не отображается в
-
Резервное копирование данных:
- Если диск периодически определяется системой, и вы хотите сохранить данные, попробуйте использовать утилиту
ddrescue
для копирования данных. Убедитесь, что у вас есть другой диск с достаточной емкостью.sudo ddrescue /dev/sdb /path/to/backup.img /path/to/logfile.log
- Если диск периодически определяется системой, и вы хотите сохранить данные, попробуйте использовать утилиту
-
Обращение к профессионалам: Если имеет значение восстановление данных, и вы не можете с этим справиться, возможно, лучше обратиться в специализированные сервисы по восстановлению данных.
Надеюсь, это поможет вам решить проблему с вашим внешним жестким диском. Если у вас будут дополнительные вопросы, не стесняйтесь обращаться!