Библиотека сайта rus-linux.net
14 дней жизни одной операционной системы
или впечатления об установке и настройке
Red Hat Linux 9 Cyrillic Edition
В.А.Костромин, 23 сентября 2003 г.
День четырнадцатый. GNU/Parted.
И, действительно, команда /sbin/parted сработала (только запускать ее надо от имени root-а) и для начала выдала предупреждение о том, что у меня не все в порядке с таблицей разбиением диска на разделы. Причиной этого может быть то, что программа, с помощью которой создавались разделы, не имела правильных данных о геометрии диска. Опасности это не представляет, но может вызвать проблемы с некоторыми загрузчиками. Я давно уже знаю об этой проблеме из сообщений программы Partition Magic, поэтому соглашаюсь с предложением игнорировать проблему и продолжать работу. В ответ программа выдала информацию о том, что по мнению операционной системы диск /dev/hda имеет геометрию 784/255/63. После чего появилось приглашение программы к вводу команд, которое вы видите на рис. 35.
Примечание: Рисунки, которые Вы видите, получены на другом компьютере, поскольку я не умею делать снимок экрана в консольном режиме, а графика у меня не работает. Но отличия заключаются только в том, что на old-lin те же сообщения выдаются белыми буквами на черном фоне, и, естественно, сообщение об ошибках в ситуации, приведенной на рисунке, не появилось. В остальном содержание сообщений абсолютно одинаковое. Заметьте также, что программу можно запускать как с консоли, так и в окне терминала.
Рис. 35. Сообщение программы parted при запуске.
Не зная поначалу, что делать дальше, я ввел в строке подсказки знак вопроса. И получил список возможных команд, который вы можете также точно получить по команде help (рис.36).
Рис. 36. Сообщение программы parted по команде help.
Как видите, программа даже русифицирована, хотя и не полностью. Но все равно понятно не все.
Однако ясно, что начинать надо с команды print. Ввожу эту команду, вновь появляется предупреждение о неправильной таблице разбиения диска, и
после того, как я снова соглашаюсь его проигнорировать, получаю перечень имеющихся на диске разделов. (Показать вам на рисунке сообщения, выдаваемые программой parted по команде print
и последующим командам я не могу, поэтому буду просто описывать результаты.) Перечень этот представлен в виде таблички примерно такого вида:
Minor |
Start |
End |
Type |
Filesystem |
Flag |
1 |
0,031 |
2000,280 |
primary |
fat |
|
2 |
2000,281 |
2306,206 |
extended |
||
5 |
2000,312 |
2306,206 |
logical |
linux-swap |
|
3 |
2306,237 | 4314,331 |
primary | ntfs |
|
4 |
4314,331 |
6142,038 |
primary | ext3 |
Из этой таблички становится ясно, что такое параметр MINOR в командах программы, - это просто номер раздела, который выдается той же командой.
Работу с программой я решил начать с удаления первого раздела (его тип FAT). После ввода команды
(parted) rm 1
очень быстро вновь появляется приглашение (parted) и команда print выдает ту же таблицу 1, но без первого раздела. Что ж, можно создать на освободившемся месте новый раздел
(parted) mkpart 0 2000,000
Запрашивается тип раздела, задаю primary. Потом программа просит
снова ввести начало и конец раздела и появляется ее приглашение. По
команде
(parted) print
убеждаюсь, что раздел создан и узнаю его младший номер (тот самый MINOR). Создаю на нем файловую систему ext2
(parted) mkfs 1 ext2
(команды
(parted) mkpart 0 2000,300 и
(parted) mkfs 1 ext2
можно было, по-видимому, выполнить за один прием, командой
(parted) mkpartfs p ext2, но я делал так, как сказано выше).
После этого я вышел из программы parted (командой q) и подмонтировал новый раздел к своей системе. Все прошло нормально, я убедился, что раздел монтируется нормально (записывал туда файлы, отключал, монтировал вновь и убеждался, что файлы скопировались не в каталог монтирования, а именно на вновь созданный раздел).
Снова удаляю первый раздел. Раз уж я занялся этой программой, то поиграюсь с ней побольше, и познакомлюсь с ее возможностями поближе! На тестовом-то компьютере я могу себе такие игры позволить!Снова запускаю программу parted и решаю перенести swap-раздел в начало диска на первичный раздел. Ввожу команду
(parted) move 5 0 306,000
Программа выдает предупреждение, что раздел используется, которое я
опять игнорирую. После этого она заново запрашивает начало и конец
раздела, после чего отказывается выполнить перемещение, сообщая, что не
может передвинуть раздел сам в себя. Конечно, этот результат нельзя
назвать неожиданным, я и предполагал, что логический раздел переместить
в первичный не удастся. Может быть, можно преобразовать тип раздела? Пытаюсь выполнить команду
(parted) set 5
однако предлагаются только варианты boot/hidden/скрытый/raid/lba
(это, по-видимому, и есть те флаги, которые могут появляться в
последней графе таблицы 1). Приходится жать
<Ctrl>+<D>. Тогда создаю на освободившемся
пространстве новый раздел
(parted) mkpartfs swap 0 306,000
(при этом создать swap-раздел не удается, приходится создать ext2). Команда print
сообщает, что создан раздел номер 1, начинающийся на 0,031,
заканчивающийся на 305,925. Ну ладно, превратить его в swap можно будет
потом командой mkswap
[1]. А пока пойдем дальше. Удалять раздел 2 (расширенный) не решаюсь,
удаляю ntfs-раздел, после чего пытаюсь передвинуть поближе к разделу 4
раздел 2 (extended). Однако оказывается, что программа не может двигать
расширенные разделы.
Хорошо, попытаюсь его удалить, вначале преобразовав новый первый раздел
в swap и подключив его к системе. Выхожу из программы parted (для
этого достаточно ввести в командной строке программы букву q) и
выполняю команды
[root] mkswap /dev/hda1
[root] swapon /dev/hda1
После этого команда
[root] parted /dev/hda/ print
(обратите внимание на возможность задать команду для программы parted прямо в командной строке консоли) сообщает, что теперь раздел 1 (то есть /dev/hda1) является swap-разделом. После этого удаляю раздел 5 (операция завершается успешно) и раздел 2 (тоже успешно). Осталось у меня 2 раздела: hda1 (swap) и hda4 (ext3). Теперь можно попытаться расширить существующий раздел 4 (обратите внимание - в работающей с этого раздела системе!)
(parted) resize 4
На запрос о начале раздела ввожу 3000, конец - 6142,0381. Выдается
предупреждение о том, что файловая система не была правильно
размонтирована и необходимо выполнить команду e2fsck. Попытка
игнорировать это предупреждение к успеху не привела - появилось
сообщение что операция не выполнена, потому что файловая система имеет
какое-то странное расположение (rather strange layout). Parted can't
resize this (yet!). Я так понимаю, что parted (пока!) не умеет
работать с ext3fs.
Такое же сообщение выдается при попытках выполнить команду
(parted) move 4 306 2306
Тогда создаю раздел 2 и пытаюсь скопировать в него существующий раздел
(parted) cp 4 2
Тоже отказ! Создать на новом разделе разделе файловую систему ext3
тоже невозможно. Но ведь можно сделать это средствами операционной
системы. Выхожу из программы parted, и пытаюсь выполнить команду mkfs -t ext3 /dwv/hda2.
Неудачно, получаю сообщение о том, что раздел имеет нулевой размер.
Вспоминаю, что при создании раздела было сообщение, что для подключения
раздела надо перезапустить систему. Что и делаю. При загрузке
появляются сообщения о невозможности подключить swap-раздел /dev/hda5,
еще какие-то сообщения об ошибках, но система грузится успешно. И
так же успешно завершается выполнение команды
[root] mkfs -t ext3 /dwv/hda2
Снова запускаю parted и пытаюсь скопировать 4-ый раздел на 2-ой. Результат отрицательный - не умеем работать с ext3fs.
Это что касается прямого опыта использования программы. Теперь несколько слов о том, что мне удалось почерпнуть из документации (я имею в виду man и info). Кратко перечислю, что бросилось в глаза при просмотре этих документов.
- Программа пока умеет создавать на разделах только файловые
системы типа FAT, ext2 и swap (очевидно и работать умеет только с
разделами таких типов).
- Начало и конец создаваемого раздела задаются в мегабайтах.
- Флаги, устанавливаемые на раздел, могут принимать значения boot, root, swap, hidden raid, lvm и lba. Состояние раздела (state) может быть либо "on", либо "off".
- Программа умеет работать под GNU/Linux и GNU/Hurd. Но имеется
возможность создать загрузочную дискету, для чего нужно скачать ее
образ с сайта ftp://ftp.gnu.org/gnu/parted/bootdisk/partboot.imf, после
чего скопировать его на дискету командой
Но документация предупреждает, что загрузочный диск поддерживает не очень широкий спектр устройств.
Подведем промежуточный итог. По сравнению с программой Partition Magic (PM) программа parted не производит сильного впечатления. PM умеет работать с разными типами файловых систем (умеет их создавать, перемещать и изменять в размерах), работает в графическом режиме даже при запуске с дискеты, дискеты можно создать прямо с помощью самой программы PM, ну и так далее (все сразу и не вспоминается). Так что, пожалуй, я пока предпочту работать с Partition Magic.
Что такое случилось дальше, я даже как-то не могу понять. Стал я
перечитывать то, что написал выше, перепроверять свой текст (как
обычно делаю со своими заметками), и, чтоб проверить, что команда parted не запускается от обычного пользователя, переключился во второй виртуальный терминал и попытался запустить там команду parted.
Она, естественно, не запустилась. Но после переключения в первый
терминал (где я работал от имени суперпользователя) и попытки снова
просмотреть разбиение на разделы, чтобы что-то еще сделать, оказалось,
что разделов на диске нет вообще. Выдавались только заголовки столбцов,
приведенные в первой строке таблицы 1. А последующие строки
отсутствовали. Команда rescue 4000 6000 работала минут 8, но в
результате ничего не восстановила (там же у меня ext3). При попытке
перезапустить систему появилось приглашение загрузчика grub и ВСЕ!
Систему я грохнул! Я не уверен, что причиной явилась попытка запустить
parted в двух терминалах. Восстановить свои действия по шагам (даже в
памяти) я уже не могу. Но результат налицо. Меня он не сильно огорчил,
поскольку я все равно собирался начать установку системы заново, с
целью, в частности, ликвидировать те дефекты в разбиении диска на
разделы, о которых сообщали программы parted и PM.
Заодно я хочу пересмотреть свои заметки заново, а точнее переписать
их. При этом не буду разбивать их по дням, а разобью на части по темам,
примерно таким образом: Инсталляция, Unicode, Настройка сервисов, Офис,
Графика, Звук, Мультимедиа, Сеть, Samba, Apache, Parted и так далее.
При этом еще раз все перепроверю, дополню и подредактирую.
Список литературы и ссылки.
- В.А.Костромин, "Linux для пользователя", изд. БХВ-Петербург, 2002 год, серия "Самоучитель", 650 стр.