Вопрос или проблема
Я хочу понять, как создать новый раздел без использования команды 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 ГБ), важно удостовериться, что:
- Каждое изменение не нарушает правила, связанные с циклами накопления данных (цилиндрами).
- Числа секций в таблице разделов не перекрываются.
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
или других аспектов разметки дисков, не стесняйтесь обращаться за помощью!