Hello, Есть в наличии сервер с рейдконтроллером и двумя массивами на нем и установленной Fedora 8 x86_64. Второй массив имеет объем 6 террабайт. Я его разбил parted-ом на три раздела по 1.9 террабайта и взгромоздил xfs. В прошлую субботу мне пришлось перегрузить сервер (абсолютно корректно reboot). После загрузки mount отказался монтировать третий раздел sdb3. После обследования получил следующую информацию. Судя по всему, третий раздел в таблице разделов сейчас прописан с совершенно неверными цифрами. А именно:
fdisk -l
Диск /dev/sdb: 5999.9 ГБ, 5999909928960 байт
255 heads, 63 sectors/track, 729447 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00094bb7
Устр-во Загр Начало Конец Блоки Id Система
/dev/sdb1 1 243032 1952148437+ 83 Linux
/dev/sdb2 243032 486063 1952148437+ 83 Linux
/dev/sdb3 218714 461988 1954101562+ 83 Linux
То есть sdb3 как бы наложен на sdb1 и sdb2. sdb1 и sdb2 сейчас чувствуют себя нормально. То есть, насколько я понимаю, надо прописать в таблицу разделов правильные стартовый и финальный сектора для sdb3. Только как это сделать ? Пробовал использовать sfdisk, но он меня мягко говоря, послал. Сначала я снял дамп с sdb и получил файл следующего содержания:
# таблица разделов /dev/sdb
unit: sectors
/dev/sdb1 : start= 1, size=3904296875, Id=83
/dev/sdb2 : start=3904296876, size=3904296875, Id=83
/dev/sdb3 : start=3513626455, size=3908203125, Id=83
/dev/sdb4 : start= 0, size= 0, Id= 0
С помощью калькулятора и общего количества секторов вычислил стартовый сектор и размер третьего раздела, прописал эти цифры в файле
cat mysdb_sfdisk_new_1
# таблица разделов /dev/sdb
unit: sectors
/dev/sdb1 : start= 1, size=3904296875, Id=83
/dev/sdb2 : start=3904296876, size=3904296875, Id=83
/dev/sdb3 : start=7808593751, size=3909972304, Id=83
/dev/sdb4 : start= 0, size= 0, Id= 0
и скормил его sfdisk-у на запись. Получил нижеследующее:
sfdisk -n /dev/sdb < mysdb_sfdisk
Диск /dev/sdb: 729447 цилиндров, 255 головок, 63 секторов/дорожку
Старая ситуация:
Единицы = цилиндры по 8225280 байт, блоки по 1024 байт, начиная с 0
Устр-во Загр Нач Конец #цил #блоки Id Система
/dev/sdb1 0+ 243031- 243032- 1952148437+ 83 Linux
/dev/sdb2 243031+ 486062- 243032- 1952148437+ 83 Linux
/dev/sdb3 218713+ 461987- 243275- 1954101562+ 83 Linux
/dev/sdb4 0 - 0 0 0 Пустой
Новая ситуация:
Единицы = секторы по 512 байт, начиная с 0
Устр-во Загр Начало Конец #секторы Id Система
/dev/sdb1 1 3904296875 3904296875 83 Linux
/dev/sdb2 3904296876 7808593750 3904296875 83 Linux
/dev/sdb3 7808593751 11718566054 3909972304 83 Linux
/dev/sdb4 0 - 0 0 Пустой
Предупреждение: раздел 1 не заканчивается на границе цилиндра
sfdisk: Не нравятся мне эти разделы - ничего не изменено. (Если вы действительно хотите этого, используйте опцию --force.)
Попробовал я его запустить с командой --force. Он это дело проглотил, сказал "записываю .. перечитываю таблицу .." После этого я предложил ему рассказать про обновленную таблицу разделов и просто офигел, когда увидел в дампе те же самые цифры, что и в самом начале. То есть sdb3 начинался с того же 3513626455 сектора. Теперь обращаюсь к многоуважаемой общественности. Подскажите пожалуйста почему так неуважительно ведет себя sfdisk и можно ли как-то попытаться прописать правильные цифры для sdb3, дабы попытаться вытянуть этот раздел без переразбиения ?