3

У меня есть диск WD объемом 3 ТБ (на внешнем накопителе My Book Essential.) Я использовал parted под Linux, чтобы разделить его с меткой диска GPT и загрузить данные с моего ноутбука через USB-кабель. Затем я взломал его и переключил на внутренний SATA-диск на другом компьютере (рабочем столе).

Linux (Fedora 14 на обоих компьютерах) не распознал диск. расстался, сказал нераспознанную метку диска. Также сообщается, что размер логического сектора составляет 512 байт: «Размер сектора (логический / физический): 512 байт / 4096 байт. Когда я подключил его к ноутбуку через USB, он был записан как 4096/4096.

Я попытался перераспределить его, умножив все смещения секторов на 8, но он все еще не распознал данные. (Не то чтобы я ужасно удивился.)

Если я переключаюсь на USB-соединение на настольном компьютере, он переключается обратно на 4096 байт логических секторов. Похоже, что плата контроллера USB использует логические сектора размером 4096 байт. Честно говоря, 4096 имеет для меня больше смысла, учитывая, что это размер аппаратного сектора, но есть ли способ заставить USB или SATA использовать другое значение?

4 ответа4

5

Немного поздно, но у меня была похожая проблема после того, как порт USB на моем жестком диске IOMEGA сломался. Я переключился на другой корпус USB-2-SATA, чтобы обнаружить, что не могу смонтировать раздел EXT4. По какой-то причине в случае IOMEGA размер логического сектора был равен 4096, но в моем новом случае это было всего 512 байт. Это портит таблицу разделов MS-DOS.

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

Быстрое исправление: используйте петлевое устройство для перемещения в правильное положение раздела.

Постоянное исправление: переписать таблицу разделов, соответственно.

В моем случае это был диск /dev/sdb .

Мое быстрое исправление было относительно легким, поскольку у меня был только один раздел, начинающийся в секторе 63.

$ sudo sfdisk -d /dev/sdb
# partition table of /dev/sdb
unit: sectors

/dev/sdb1 : start=       63, size=623708785, Id=83

Теперь нам нужно вычислить позицию раздела, когда размер сектора все еще составлял 4096 байт:

63 sectors * 4096 bytes = 258048 bytes

И используйте это с losetup:

$ sudo losetup /dev/loop0 /dev/sdb -o 258048
$ sudo mount /dev/loop0 /mnt

Теперь ваш раздел должен быть смонтирован в /mnt .

Для долговременного исправления я использовал sfdisk для создания дампа разметки раздела:

$ sudo sfdisk -d /dev/sdb > sdb.partitions.sfdisk.text

Исправление таблицы разделов путем умножения на начальный сектор с 8, где это уместно, - здесь я понял, что моя таблица разделов была как бы прикручена с самого начала.

Я отредактировал дамп таблицы разделов с помощью nano sdb.partitions.sfdisk.text:

/dev/sdb1 : start=       63, size=623708785, Id=83

чтобы:

/dev/sdb1 : start=      504, size=623708785, Id=83

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

/dev/sdb1 : start=      504, size=625141944, Id=83

Последний шаг - написать таблицу разделов с помощью:

$ sudo sh -c 'cat sdb.partitions.sfdisk.text | sfdisk /dev/sdb'
2

Еще один способ (фактически улучшенный упомянутый здесь) для получения временного доступа - это использовать losetup и kpartx . Вот что я сделал:

losetup -f /dev/sdl
kpartx -a /dev/loop2

Теперь мы можем использовать /dev/mapper/loop2pX вместо /dev/sdlX .

1

В настоящее время это обычная функция внешних жестких дисков большой емкости (> = 512 ГБ). Размер сектора преобразуется платой USB в корпусе вашего внешнего жесткого диска, и этот прием, по-видимому, используется для обеспечения совместимости с широким диапазоном ОС (например, старой Windows XP).

Это было тщательно протестировано и описано Сайки здесь:http://forums.justlinux.com/showthread.php?153881-3TB-hard-disk-used-as-external-USB-connection-or-internal-Sata-connection

Что касается вашего второго вопроса, я не нашел никого, кто мог бы изменить и исправить это поведение, даже если теоретически это кажется возможным, привод просто не примет запись.

0

Новые внешние жесткие диски, такие как бренды WD, используют предопределенные форматы. Таким образом, результаты не гарантируются никакими средствами. Если вы все еще хотите попробовать, я рекомендую низкоуровневый формат. Это может или не может работать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .