fmthard/prtvtoc: что не так?

Вопрос или проблема

Я хочу понять, как создать новый раздел без использования команды format. Это исходная ситуация (работает)

* /dev/rdsk/c0t2d0s2 схема разделов
*
* Размеры:
*     512 байт/сектор
*      63 сектора/транспорт
*     255 транспортов/цилиндр
*   16065 секторов/цилиндр
*    2608 цилиндров
*    2606 доступных цилиндров
*
* Флаги:
*   1: недоступен для размонтирования
*  10: только для чтения
*
* Нераспределенное пространство:
*       Первый     Сектор    Последний
*       Сектор     Количество    Сектор 
*    41495895    369495  41865389
*
*                          Первый     Сектор    Последний
* Раздел  Тег  Флаги    Сектор     Количество    Сектор  Директория монтирования
       1      9    00      16065  20980890  20996954
       2      9    00   20996955  10490445  31487399
       3      9    00   31487400  10008495  41495894
       8      1    01          0     16065     16064

Размеры разделов (лучше срезов) составляют 10 ГБ для первого, 5 ГБ для второго и 4,77 ГБ для третьего.

Я хочу создать четвертый срез (номер 4) размером 2 ГБ и уменьшить третий до 2 ГБ

Я редактирую этот файл (сохраняя старую версию в качестве резервной копии)

* /dev/rdsk/c0t2d0s2 схема разделов
*
* Размеры:
*     512 байт/сектор
*      63 сектора/транспорт
*     255 транспортов/цилиндр
*   16065 секторов/цилиндр
*    2608 цилиндров
*    2606 доступных цилиндров
*
* Флаги:
*   1: недоступен для размонтирования
*  10: только для чтения
*
* Нераспределенное пространство:
*       Первый     Сектор    Последний
*       Сектор     Количество    Сектор
*    41495895    369495  41865389
*
*                          Первый     Сектор    Последний
* Раздел  Тег  Флаги    Сектор     Количество    Сектор  Директория монтирования
       1      9    00      16065  20980890  20996954
       2      9    00   20996955  10490445  31487399
       3      9    00   31487400  4194304   35681703
       4      9    00   35681704  4194304   41865389
       8      1    01          0     16065     16064

Размер, похоже, правильный (2048 МБ для каждого среза)

4194304*512 = 2147483648
2147483648*1024 = 2199023255552
2199023255552/1024 = 2147483648
2147483648/1024 = 2097152
2097152/1024 = 2048

Но когда я пытаюсь создать новую таблицу разделов..

fmthard -s file.map /dev/rdsk/c0t2d0s2  
Раздел 3 не выровнен по границе цилиндров: "       3      9    00   31487400  4194304   35681703"

В чем моя ошибка? Я знаю, что с помощью команды format это слишком просто, но я хочу научиться и так.

Решение найдено. Необходимо следовать “правилу цилиндров”. Вы можете создать любой размер, который хотите (естественно, не превышая размер диска), но каждый срез должен “состоять” из общего количества цилиндров, которые должны быть “привязаны” к срезу, например: раздел 1 использует 1-1000 цилиндров, 2 – 1001-1500 и т. д., и это правильно, раздел 1 использует 1-1000 цилиндров, а 2 использует 1000-1500 – неправильно, потому что цилиндр не может быть “разделен”. Сначала рассчитайте размер цилиндра, чтобы избежать утомительных математических расчетов, я создал срез из 1 цилиндра с помощью команды format

  2 альтернативы    wm    1307 - 1307        7.84МБ    (1/0/0)       16065

Итак, если я хочу создать срез размером 3000 МБ, мне нужно рассчитать, сколько единиц по 7,84 МБ (размер цилиндра) я могу использовать, чтобы “достигнуть” 3000 МБ

Я сделал эти расчеты

3000/7.84 # 3000 - это размер раздела в МБ  2.93г примерно
382       # состоит из 382 цилиндров (результат 3000/7.84)
382*16065 # 16065 - это количество секторов для каждого цилиндра

Итак, окончательный результат – 6136830 секторов (2,93 ГБ) и является результатом 382*16065

Так что я редактирую файл, чтобы использовать первый раздел на 10 ГБ, 2, 3, 4 на 3000 МБ.

* /dev/rdsk/c0t2d0s2 схема разделов
*
* Размеры:
*     512 байт/сектор
*      63 сектора/транспорт
*     255 транспортов/цилиндр
*   16065 секторов/цилиндр
*    2608 цилиндров
*    2606 доступных цилиндров
*
* Флаги:
*   1: недоступен для размонтирования
*  10: только для чтения
*
* Нераспределенное пространство:
*       Первый     Сектор    Последний
*       Сектор     Количество    Сектор 
*    21013020  20852370  41865389
*
*                          Первый     Сектор    Последний
* Раздел  Тег  Флаги    Сектор     Количество    Сектор  Директория монтирования
       1      9    00      16065  20980890  20996954
       2      9    00   20996955   6136830  27133784
       3      9    00   27133785   6136830  33270614
       4      9    00   33270615   6136830  39407445
       8      1    01          0     16065     16064

Сработает? Да

sudo fmthard -s file.map /dev/rdsk/c0t2d0s2  
fmthard:  новая таблица содержимого тома теперь на месте.

Тестирование newfs и mount работает.

Ответ или решение

Вопрос, который вы задаете: "fmthard/prtvtoc: что не так?" требует глубокого анализа процесса изменения таблицы разметки диска и применения правил цилиндрической разметки. Рассмотрим по порядку.

E1: Понимание проблемы

Исходя из вашего описания, вы столкнулись с ошибкой, связанной с разметкой диска при попытке создания новой таблицы разделов с помощью команды fmthard. Сообщение об ошибке "Partition 3 not aligned on cylinder boundary" указывает на то, что вы не учли правило выравнивания по границам цилиндров. Разметка диска требует, чтобы каждый раздел начинался и заканчивался на определенных границах цилиндров.

E2: Анализ структуры разметки

В вашем случае дисковая структура имеет следующие параметры:

  • Размер сектора: 512 байт
  • Секторов в цилиндре: 16065
  • Доступные цилиндры: 2606

С учетом этих параметров, ваша задача состоит в том, чтобы создать новый раздел, который корректно выровнен на границе цилиндра и не перераспределяет доступные цилиндры некорректным образом.

E3: Ошибка в разметке

Когда вы изменяете третий раздел и планируете его уменьшить до 2 ГБ, а затем создаете новый четвертый раздел (размером 2 ГБ), важно удостовериться, что:

  1. Каждое изменение не нарушает правила, связанные с циклами накопления данных (цилиндрами).
  2. Числа секций в таблице разделов не перекрываются.

E4: Правила цилиндрической разметки

Как вы правильно заметили в своем решении, каждая партия должна занимать целое число цилиндров. Это значит, что:

  • Для каждого нового раздела вы должны рассчитать, сколько цилиндров ему нужно, основываясь на требуемом размере и размере цилиндра (7.84 МБ в вашем случае).

В итоге, для создания нового раздела размером 2 ГБ вам нужно будет выделить достаточное количество целых цилиндров:

3000 МБ ≈ 2.93 ГБ
Размер цилиндра ≈ 7.84 МБ
3000 МБ / 7.84 МБ = 382 цилиндра

E5: Корректировка разметки

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

* Partition 1: 10 ГБ (например, 1-1000 цилиндров)
* Partition 2: 3 ГБ (например, 1001-1382 цилиндров)
* Partition 3: 3 ГБ (например, 1383-1764 цилиндров)
* Partition 4: 2 ГБ (например, 1765-2108 цилиндров)

Обратите внимание на границы цилиндров. Теперь вы можете заново запустить команду fmthard и, вероятно, успешно изменить таблицу разделов.

Заключение

Ваша изначальная ошибка заключалась в том, что раздел 3 не был корректно выровнен с цилиндрами, что и привело к сбою. Обратите внимание на правила выравнивания, и при работе с разметкой всегда проверяйте, чтобы разделы занимали целые цилиндры. Это обеспечит вам успешное применение изменений, как это успешно произошло в вашем случае после внесения корректировок.

Если у вас возникнут дополнительные вопросы относительно работы с fmthard или других аспектов разметки дисков, не стесняйтесь обращаться за помощью!

Оцените материал
Добавить комментарий

Капча загружается...