Раздел не отображается в / dev

13

Недавно я отключил жесткий диск объемом 4 ТБ от одного компьютера, чтобы получить доступ к файлам напрямую с другого компьютера. Казалось, что не было никаких проблем с процессом размонтирования. При подключении жесткого диска к другому компьютеру жесткий диск распознается в «/ dev» как sdb, но раздел «sdb1» не появляется, поэтому я не могу его смонтировать. Если я бегу

fdisk -l /dev/sdb


WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.


Disk /dev/sdb: 4000.8 GB, 4000787030016 bytes
255 heads, 63 sectors/track, 486401 cylinders, total 7814037168 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
Disk identifier: 0x00000000

Device Boot          Start     End      Blocks      Id  System
/dev/sdb1               1  4294967295  2147483647+  ee  GPT

Раздел sdb1 обнаруживается. Так как это раздел 4TB, я также выполнил команду

parted /dev/sdb

GNU Parted 2.3
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print                                                            
Model: ASMT 2105 (scsi)
Disk /dev/sdb: 4001GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start  End  Size  File system  Name  Flags

Затем набрал «печать». В этом случае раздел sdb1 НЕ появляется.

Почему здесь несоответствие информации? Значит ли это, что раздел был удален? Есть ли способ восстановить этот раздел и смонтировать его?

заранее большое спасибо

rmsrms1987
источник
Есть три причины, по которым эта строка / dev / sdb1 не появляется, но появляется / dev / sdb. 1. потому что на этом диске нет таблицы разделов, если она не была создана. 2. Таблица разделов повреждена или 3. Таблица разделов содержит основную файловую систему, которую этот компьютер не может распознать из-за того, что библиотеки для нее не установлены. Помощь: Вы можете запустить диагностику таблицы разделов, используя fdisk /dev/sdbи набирая 'p' для получения дополнительной информации. Если раздел существует и не поврежден, и у вас есть библиотеки для анализа и чтения, эта строка должна появиться.
Эрик Лещинский

Ответы:

16

Запустите команду, partprobeчтобы компьютер повторно просканировал диск на наличие разделов.

Лоренс
источник
Спасибо за ответ. Я попытался выполнить эту команду, просто перезапустив весь компьютер безуспешно.
rmsrms1987
Какой выход fdisk -l /dev/sdb? И что на выходе dmesg?
Лоуренс
1
@ rmsrms1987 Это странно ... Вы используете fdisk на разделе 4TiB, и, кажется, работает нормально. Однако в этой статье ibm.com/developerworks/linux/library/l-gpt/index.html объясняется, что разделы размером более 2 ТБ не могут обрабатываться MBR (только GPT), а fdisk не может обрабатывать GPT. Кажется, это означает, что у вас есть MBR на вашем диске. Не могли бы вы дать нам вывод fdisk -l / dev / sdb? TY
MariusMatutiae
Я считаю, что раздел был создан с помощью GNU Parted, так как он больше 2 ТБ, но при попытке доступа через этот метод ничего не выводится. По какой-то причине sdb1 появляется только при использовании fdisk.
rmsrms1987
1
Я отредактировал свой оригинальный пост, чтобы показать более подробный вывод fdisk и разделенных выводов. Еще раз спасибо за помощь мне с этим вопросом.
rmsrms1987
3

Я не знаю, является ли это все еще актуальной проблемой, но у меня была та же проблема с одним из моих жестких дисков. Я использовал testdiskи сказал это для анализа диска. Он нашел отсутствующий раздел и обновил таблицу разделов дисков. Затем я запустил команду, partprobeи раздел оказался в / dev / полностью работоспособным.

drags4ck
источник
Это похоже на дубликат другого ответа.
bwDraco
1

Вероятно, это не ваша проблема, но у меня была проблема с похожими симптомами, которая была вызвана наличием суперблока RAID на диске.

Теперь, разумеется, я все равно хотел стереть все с моего диска, так что это не рекомендуется, если это не так. Но mdadm --zero-superblock /dev/sdbсделал трюк для меня в моем случае.

WhittlesJr
источник
0

Никто не говорил о загрузке с современного LiveCD / LiveUSB, который поддерживает GPT?

Просто попробуйте загрузить компьютер с Live-дистрибутивом любого современного Linux, а также попробуйте использовать GParted live disk, SystemRescueCD и т. Д.

Может случиться так, что компьютер, который вы использовали, не совместим с GPT и / или <2TiB дисками, также может быть контроллером SATA, не поддерживающим> 2TiB диск (я видел некоторые на моих руках, некоторые на материнских платах, некоторые на корпусах USB). .. и ваш 4TiB, что также хуже, некоторые контроллеры поддерживают только до трех TiB, но не 4TiB или больше на диск.

Почему вы видите основной раздел при использовании fdisk -l? Скорее всего, вы видите «защитный» раздел MBR, который защищает разделы GPT; он хранится в самом первом секторе диска ... большинство контроллеров SATA, у которых есть проблемы с диском> 2TiB, а также те, которые имеют проблемы только с> 3TiB, могут видеть первые 2TiB / 3TiB диска, и поэтому они видят MBR (первый сектор) правильно, но не GPT, поскольку GPT хранит данные после MBR и в самом конце диска.

Попытайтесь обеспечить обе вещи: у вас есть совместимость с GPT (используйте gfisdk вместо fo для проверки fdisk), и у вас есть контроллер SATA, не ограниченный только <2TiB, и не ограниченный <3TiB.

Лучший способ проверить это: загрузиться с любого LiveLinux, например GParted, SystemRescueCD и т. Д., И попытаться составить список разделов (с помощью fdisk), современный fdisk -lможет перечислить разделы GPT.

PD: Структура полей MBR ограничивает используемую зону первыми 2 ТБ из-за длины полей (MBR был разработан с этим ограничением).

Claudio
источник
0

Хотя fdisk - в зависимости от версии - попытается создать раздел на диске объемом 4 ТБ и даже пометить тип раздела как GPT, этот раздел не будет распознан parted.

Решение состоит в том, чтобы удалить раздел, который вы создали с помощью fdisk, и использовать parted для всего этого:

parted /dev/sdb
mklabel gpt
unit TB
mkpart primary 0 3
print
quit

Вам может потребоваться запустить «mkpart primary 0 3TB» вместо «mkpart primary 0 3».

В маловероятном случае, после этого вы не увидите / dev / sdb1, запустите partprobe и посмотрите снова.

bnwww
источник