Окончательное обновление:
Я уже знал, что мне нужно было сделать, чтобы решить эту проблему; Я просто не знал, как это сделать. Я надеялся, что найдется какой-нибудь готовый инструмент, который сделает это автоматически, но не смог найти. Я принимаю ответ Рода, потому что, несмотря на то, что он не решает мою проблему напрямую, он дает очень хорошую предысторию проблемы размера сектора и вселяет в меня уверенность, что проблема действительно была в выравнивании разделов и их решении. Для тех, кто приходит к этому вопросу с такой же проблемой, прочитайте его внимательно и внимательно, включая комментарии, прежде чем что-либо делать.
В начале
У меня был компьютер, и мне нужно больше места. Я купил новый диск на 500 ГБ и корпус USB. Вскоре я заметил, что если я разделю диск на корпусе и перенесу его на компьютер, он не распознает разделы (и наоборот). Я предположил, что это была проблема с корпусом и не беспокоился об этом.
Затем трагедия
В прекрасный день мой компьютер решил больше не включаться. Оказывается, материнская плата (без маркировки, просто большая надпись «Сделано в Китае») мертва. Я использовал его в качестве файлового сервера, и этот диск на 500 ГБ теперь полон данных, которые я не могу позволить себе потерять. Я сейчас сломался и не могу позволить себе новый компьютер, поэтому моей единственной надеждой был «неисправный» USB-корпус.
Расследование
Вооружившись несколькими дистрибутивами Linux, ноутбуком, VirtualBox и корпусом, я провел криминалистический анализ по этому вопросу. dmesg сообщил, что размер раздела не соответствует концу диска. Поэтому я просмотрел таблицы данных жесткого диска, рассчитал количество секторов с нуля, вручную проверил границы диска с помощью dd, и все выглядело нормально, пока я не запустил fdisk и не сказал:
Note: Sector size is 4096 (not 512).
Как скромно из fdisk. Эта «записка» была корнем всех проблем. После некоторого возмущения были сделаны следующие выводы:
Корпус USB не неисправен.
Контроллер SATA на ныне не работающей материнской плате, по крайней мере, «странный». Он не сообщил 4096-байтовых секторов операционной системе, поэтому ОС успешно создала MBR, используя 512-байтовые адреса секторов.
Теперь, когда я пытаюсь получить доступ к разделу, ОС пытается использовать 512-байтовые адреса на дисковом секторе 4096 байт, и, конечно, это не сработает.
Вопрос
Итак, как я могу исправить адреса в MBR так, чтобы они были действительны для сектора размером 4096 байт, кроме ручного редактирования MBR в hex-редакторе, и
Разделы не выровнены для 4096-байтовых секторов. Существует ли какой-либо инструмент, позволяющий выровнять их, помимо копирования на другой диск? (У меня нет запасных дисков), или мне нужно будет создать какой-нибудь инструмент, который за один раз «сдвигает» данные в сторону? Перегородки ext3.
Благодарность!
Обновить:
Я обнаружил, что есть умный способ использовать dd для перемещения раздела на месте в этом вопросе: Как переместить раздел в GNU / Linux? Но я не знаю, будет ли это работать на каком-то участке сектора. Я не могу проверить это сейчас, но сделаю, когда у меня будет время.
Обновление 2:
Итак, я успешно выровнял раздел, используя метод выше, и отредактировал MBR вручную в шестнадцатеричном редакторе. Как только я снова подключил жесткий диск, раздел стрелы автоматически монтируется! Я не рекомендую это, хотя, во время процесса были ошибки ввода-вывода, и я мог потерять все, см. Комментарий к ответу Рода. Что касается другого раздела, я не буду рисковать и буду использовать старый жесткий диск и выравнивать порции, копируя данные, а затем вставляя их обратно в другую позицию.
fdisk
для редактирования MBR (я узнал об этом позже, нет необходимости в hex-редакторах :)). Вы можете изменить каждую начальную точку входа и размер, и просмотреть изменения перед применением. Итак: запустите fdisk
, запишите текущую конфигурацию (или, лучше, сделайте резервную копию MBR dd
), умножьте значения начального адреса и размера на 8 и измените их. Не забудьте проверить все с помощью калькулятора и понять, что означают значения. Вы увидите, что Size = End - Start + 1 fdisk
показывает размер в 1000-секторных единицах, поэтому вам может потребоваться включить экспертный режим, чтобы увидеть реальное значение и т. Д.