Окончательное обновление:
Я уже знал, что мне нужно было сделать, чтобы решить эту проблему; Я просто не знал, как это сделать. Я надеялся, что найдется какой-нибудь готовый инструмент, который сделает это автоматически, но не смог найти. Я принимаю ответ Рода, потому что, несмотря на то, что он не решил напрямую мою проблему, он дает очень хороший фон по проблеме размера сектора и вселяет в меня уверенность, что проблема действительно заключалась в выравнивании разделов и их решении. Для тех, кто приходит к этому вопросу с такой же проблемой, прочитайте его тщательно и внимательно, включая комментарии, прежде чем что-либо делать.
В начале
У меня был компьютер, и мне нужно больше места. Я купил новый диск на 500 ГБ и корпус USB. Вскоре я заметил, что если я разделю диск на корпусе и перенесу его на компьютер, он не распознает разделы (и наоборот). Я предположил, что это была проблема с корпусом и не беспокоился об этом.
Затем трагедия
Прекрасный день, мой компьютер решил больше не включаться. Оказывается, материнская плата (без клейма, просто напечатанная на ней большая надпись "MADE IN CHINA") мертва. Я использовал его в качестве файлового сервера, и этот диск на 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 вручную в шестнадцатеричном редакторе. Как только я снова подключил жесткий диск, раздел стрелы автоматически монтируется! Я не рекомендую это, хотя, во время процесса были ошибки ввода-вывода, и я мог потерять все, см. Комментарий к ответу Рода. Что касается другого раздела, я не буду рисковать и буду использовать старый жесткий диск и выравнивать порции, копируя данные, а затем вставляя их обратно в другую позицию.