Установка диска efi на внешний USB-порт

Недавно я купил новый sshd, чтобы заменить старый на моем ноутбуке, но у меня проблема . Я установил Ubuntu 15.10 на новый и поставил старый на USB-футляр, который у меня есть, но на USB-диске нет раздела (я кричал 5 минут, потому что не могу потерять данные).

Я переместил свой старый диск обратно в отсек для дисков и поместил новый в футляр для USB-накопителя, и все мои данные были здесь нетронутыми, но на USB-диске нет раздела.

Оба диска при подключении к usb правильно показывают модель и завод, но не разделы. Корпус в порядке, протестирован со старым жестким диском, у которого нет раздела GPT / EFI.

Как смонтировать внешний диск, чтобы передавать файлы?

Вывод команд:

 $ sudo blkid /dev/sdb 
 /dev/sdb: PTTYPE="PMBR"


 $ sudo parted /dev/sdb print 
 Error: /dev/sdb: unrecognised disk label
 Model: ST1000LM 014-1EJ164 (scsi)                                     
 Disk /dev/sdb: 1000GB Sector size (logical/physical): 4096B/4096B
 Partition Table: unknown Disk Flags:

$ sudo gdisk /dev/sdb 
GPT fdisk (gdisk) version 1.0.0

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: not present
0
05.02.2016, 15:00
1 ответ

Обратите внимание на эту часть:

Sector size (logical/physical): 4096B/4096B

Этот диск может использовать блоки размером 4 КБ. Я предполагаю, что корпус USB и внутренний контроллер SATA в ноутбуке используют разные стратегии для работы с этим :: один переводит их в традиционные блоки по 512 -байт, а другой может изначально использовать новый размер блока.

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

Sector size (logical/physical): 512B/4096B

При использовании схемы разделов GPT это становится проблемой. :Спецификация GPT говорит, что таблица разделов должна начинаться с блока #1. Блок #0 зарезервирован для «защитной MBR», которая просто позволяет более старым системам идентифицировать диск как используемый, даже если они понимают только разметку в стиле MBR -.

Но если вы разбиваете диск, используя эмулированные 512 -байтовые блоки, а затем переключаетесь в собственный режим (, например. при перемещении диска с внутреннего контроллера на USB-накопитель размером 4 КиБ -)блок размером 512 -байтов #1 становится второй восьмой блока размером 4 КиБ -#0.

Соответственно, если вы изначально использовали собственные блоки размером 4 КиБ при разбиении диска, а затем переключились на эмулированные блоки размером 512 -байт, таблица разделов GPT теперь начинается с блока #8.

К сожалению, единственный способ исправить вашу ситуацию без переразметки — это найти более старый внешний USB-адаптер жесткого диска, который специально не может использовать блоки по 4 КиБ, поэтому это приведет к срабатыванию встроенного -диска в 512 -эмуляция байтовых секторов, как это делает внутренний контроллер SATA ноутбука.

С ядром Linux версии 4.14 или новее (или с более ранним ядром, с этим исправлением ), возможно переключение размера логического блока. Если у вас также есть версия losetupс этим патчем , вы сможете подключить диск к существующему USB-адаптеру,а затем скажите:

losetup -P -b 512 /dev/loop0 /dev/sdb

, чтобы вы могли получить доступ от /dev/sdbдо /dev/loop0, используя другой размер логического блока. Разделы будут отображаться как /dev/loop0pNс номером раздела N, или, если эта схема еще не поддерживается вашим дистрибутивом, вы можете опустить параметр -Pи использовать инструмент kpartxиз устройства сопоставления --многолучевой пакет:

kpartx -a /dev/loop0

... для автоматического создания сопоставлений для каждого раздела на вашем петлевом устройстве с именем вроде /dev/mapper/loop0pN.

Затем вы можете монтировать эти разделы как обычно, только с другим именем устройства.

После размонтирования разделов, процедура отмены этого набора -такова:

kpartx -d /dev/loop0    # only if the use of kpartx was needed
losetup -d /dev/loop0 
0
28.01.2020, 04:53

Теги

Похожие вопросы