10/14/2008

cfdisk и mkfs: разметка и форматирование разделов в Linux

После приобретения нового винчестера или флешки нужно разбить свежее пространство на разделы и отформатировать их под требуемую файловую систему Linux. Это очень просто только почему-то об этом не пишут.

Создание раздела на жёстком диске в Linux
Для этого используем cfdisk (кто не может пережить псевдографический интерфейс, качает gparted). Для создания разделов потребуются привилегии root, добываемые командной su.
После этого пишем:
cfdisk /dev/hdb

Видим экран:


Нажимаем на New, создать раздел. Выбираем Primary (основной)


Создастся, нажимаем Bootable (если нужно, чтобы он был загружаемый).

Если уверены, что всё сделано правильно - записываем изменения, нажимаем Write и пишем yes


Как уже говорилось, создать раздел в Linux довольно просто, и это только что сделано. Всё, разделы созданы, выходим из программы, выбирая Quit.

Если на диске "битый" раздел
К примеру, таблица разделов на флешке повреждена настолько, что проще всё снести и создать заново - тогда делаем так: cfdisk -z /dev/hdb
Параметр -z создаёт нулевую таблицу разделов, и позволяет сразу начать формировать новую.


Форматирование дисков в Linux: как отформатировать диск или раздел в Линукс
Для этого сначала нужно выбрать файловую систему. Отвечу на сакраментальный вопрос: "файловая система Linux: какая лучше?"
- Ext3: надёжная, протестированная и многократно проверенная файловая система Linux систем, рекордов скорости не ставит, в большинстве случаев - оптимальный выбор.

- ReiserFS:
лучший выбор, если на разделе много мелких файлов; большие файлы копирует медленно и ощутимо грузит процессор, так что не для слабых машин.

- Xfs:
лучший выбор для файловых хранилищ, особенно файлов огромных размеров (iso-образы дистрибутивов и фильмы).

- Jfs:
не быстрая, но весьма стабильная файловая система и нетребовательна к ресурсам - мало грузит процессор и хороша на старых машинах и медленных ноутбуках.
Далее, по умолчанию в Debian поставлены утилиты ext3. Если нужных нет - ставим:
aptitude install reiserfsprogs xfsprogs jfsutils
После этого пишем:
sudo mkfs -t типФС /файл/устройства
где вместо типФС подставляем выбранную файловую систему:
  • reiserfs
  • ext3
  • jfs
  • xfs
Вместо /файл/устройства пишем имя форматируемого раздела, например /dev/hdb1. В нашем примере это выглядит так:
sudo mkfs -t ext3 /dev/hdb1
На экране будет происходить что-то вроде:



После форматирования раздел сразу же можно смонтировать и использовать. Создаём точку монтирования:
sudo mkdir /mnt/megadrive
и даём директории полные права:
sudo chmod 770 /mnt/megadrive
И монтируем:
sudo mount -t ext3 /dev/hdb1 /mnt/megadrive
Всё, разделы созданы и отформатированы.

Настройка файловой системы
ВНИМАНИЕ! Всё нижеописанное делается на ОТМОНТИРОВАННОЙ файловой системе!
Здесь нужно ещё отметить тот факт, что при форматировании в ext3, для пользователя root резервируется 5% места. Чтобы
убрать 5 процентное резервирование места для root в ext3 нужно дать команду:
# tune2fs -m 0 /dev/hdb1
После этого простому пользователю будет доступно всё место.

Так же имеет место быть принудительная проверка диска после некоторого количества загрузок. Если вам это не нужно, процедуру можно отменить командой:
# tune2fs -c 0 /dev/sda1
Либо сделать так, чтобы проверка происходила реже, например, 1 раз в 100 загрузок:
# tune2fs -c 100 /dev/sda1
Просмотреть свойства файловой системы можно командой
# tune2fs -l /dev/sda1
и узнать о ней много интересного. Если нужно, конечно.


Как отформатировать раздел в Линукс - графическая среда
Если консоль нагоняет ужас и хочется что-то графического - нужно установить gparted из репозитория. Запустится программа gpated в графическом режиме:


и графическими средствами урезаем диск до нужного размера (правая кнопка
мыши -> Move/Change size). Графический интерфейс программы прост,
главное - не забываем нажать на кнопку Apply для того, чтобы изменения
вошли в силу, и дождаться того, пока все операции выполнятся.


Если всё прошло гладко - выгружаем gparted и можно монтировать диск.

Информация о разделах винчестера
Иногда требуется узнать, какие разделы на винчестере есть и какая там файловая система. Для того, чтобы узнать информацию о разделах жесткого диска, набираем от root пользователя:
fdisk -l /dev/sda
в ответ получаем:

Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xd0f4738c

Device Boot Start End Blocks Id System
/dev/sda1 1 61 489951 82 Linux swap / Solaris
/dev/sda2 * 15567 19457 31254457+ 83 Linux
/dev/sda3 62 15566 124543912+ 83 Linux
Откуда видим: есть три раздела, первый из них (/dev/sda1) это раздел подкачки (500 мегабайт). Второй раздел (/dev/sda2) на 30Гб, трейтий (/dev/sda3) на 120Гб. Активный раздел (который сейчас используется операционной системой) помечен звёздочкой.

Узнать, на каком разделе вы сейчас работаете, можно с помощью команды:
df .
точка на конце обязательна; получим:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 85864764 2733992 83130772 4% /home
собственно то же, что и в случае с fdisk -l == именно информацию о разделе.



Ссылки
Пост навеян этой краткой заметкой.
Комментаторам большое спасибо за конструктивную критику и меткие замечания.

28 комментариев:

  1. в слове "выбать" пропущена какая-то буква.

    ОтветитьУдалить
  2. Статья для начинающих несомненно полезная, только вот зачем же так радикально? ;)

    chmod 777? :)

    ОтветитьУдалить
  3. А для форматирования в фат что нужно доустановить? В gparted этот пункт у меня не активен

    ОтветитьУдалить
  4. в командной строке и для скриптов имхо удобнее использовать parted

    ОтветитьУдалить
  5. 2 Эльдар Курбанов пишет...
    в слове "выбать" пропущена какая-то буква.
    :-)))
    Это была буква Р :-)

    2 Olly Cat пишет...
    только вот зачем же так радикально? ;)
    На домашних машинах - так проще. А те, кто содержит продакшны и Ынтерпрайзы, должны головой думать :-)

    2 Vit@liy пишет...
    А для форматирования в фат что нужно доустановить?
    Вроде как dosfstools и mtools

    2 san-sanych-r пишет...
    в командной строке и для скриптов имхо удобнее использовать parted
    Возможно. Я решил остановиться на cfdisk, а gparted дать как графический вариант.

    ОтветитьУдалить
  6. <offtopic>
    Архивный календарь (виджет) непофиксен, автор иже выпустил исправленный скрипт http://phydeaux3.blogspot.com/2008/09/archive-calendar-fix.html
    </offtopic>

    ОтветитьУдалить
  7. 2 virens пишет...
    На домашних машинах - так проще. А те, кто содержит продакшны и Ынтерпрайзы, должны головой думать :-)

    Ну проще оно конечно проще, но все равно в корне не верно: даже домашние тачки бывают подключены к инету и часто с ральным ip. ;) В общем я думаю вы не правы. Не столько в способе, а сколько в подаче материала для начинающих: новичков все же надо учить не как проще, а как правильно, проще они сами потом придумают. :) Ведь например проще работать под рутом в системе. Проще ведь? Но вы же не учите такому. Я бы все же в тексте исправил это на что-то вроде:

    sudo addgroup homeusers
    sudo chown :homeusers /mnt/megadriveИ
    sudo gpasswd -a user homeusers
    sudo chmod 770 /mnt/megadriveИ

    Длиннее, но правильнее. :)

    P.S. Поймите правильно, не в качестве притензий автору. Автору спасибо за труд! :) Просто давайте учить не просто "как делать", а "как делать правильно". ;)

    ОтветитьУдалить
  8. 2 Blogger Yurij пишет...
    Архивный календарь (виджет) непофиксен
    Юрик, спасибо большущее - я и не заметил, что календарь отвалился :-)

    2 Olly Cat пишет...
    В общем я думаю вы не правы.
    Так я ж не истина в последней инстанции :-)

    Не столько в способе, а сколько в подаче материала для начинающих: новичков все же надо учить не как проще, а как правильно
    В этих словах правды много чувствую я. Поправить пост придётся таки.

    Я бы все же в тексте исправил это на что-то вроде:
    Вариант с gpasswd не нравится ибо завязано на гном (у меня его нет, и у многих нет). Вариант с chmod 770 принят.

    P.S. Поймите правильно, не в качестве притензий автору.
    ... а в качестве конструктивной критики. И я её люблю (для этого комментарии и открыты), а вам - огромное спасибо. Учёл.

    Просто давайте учить не просто "как делать", а "как делать правильно".
    Я никого не учу - просто делюсь найденными рецептами. У меня дома такие права (777) на домашний каталог и стоят :-) И я по простоте душевной так и написал.
    Если что - у меня ip динамический. :-))

    Но замечание принято, пост поправлен. Вместе с некоторыми очепятками.

    ОтветитьУдалить
  9. 2 virens пишет...
    Вариант с gpasswd не нравится ибо завязано на гном (у меня его нет, и у многих нет).
    Пардон, уважаемый, но gpasswd не имеет ни какого отношения к gnome, не смотря на название. :) Цитату из мана приводить не тут не буду. ;)
    Я к стати тоже не люблю админские вещи завязанные на чем-то отличном от консоли. ;)

    В общем еще раз пардон за столь навязчивую критику. :)

    ОтветитьУдалить
  10. 2 Olly Cat пишет...
    Пардон, уважаемый, но gpasswd не имеет ни какого отношения к gnome, не смотря на название.
    Да, это я что-то не то сморозил :-) Писал с работы и потому был невнимателен.

    Я постараюсь подправить пост, но эта и следующая неделя очень загружены, так что как руки дойдут - поправлю.

    ОтветитьУдалить
  11. Скажите, а у вас есть доступно и про бэкап?
    а про перенос системы?
    (например купил новый винчестер большего размера)

    ОтветитьУдалить
  12. > (например купил новый винчестер большего размера)

    скопировал линукс.
    cp -R /
    grub-install (hdX,X)

    все работает

    ОтветитьУдалить
  13. Анонимный комментирует...

    > (например купил новый винчестер большего размера)

    скопировал линукс.
    cp -R /
    grub-install (hdX,X)

    все работает


    В общем случае - да, пойдет и такой вариант. Но есть нюансы. Так что что опять же по хорошему было бы dump/restore для каждой файловой. На продакшн я делаю только так. Хотя этот путь тоже не идеален. На домашней уже сколько винчестера менял, обычно переношу разделы с помощью cpio. Спору нет, этот вариант тоже имеет свои недостатки. Но он достаточно надежен и привычен. :)

    ОтветитьУдалить
  14. хочу добавить особо злобный комментарий. драйвер корневой файловой системы должен быть вкомпилен в ядро!

    ОтветитьУдалить
  15. Blogger CTpaHHoe пишет...

    хочу добавить особо злобный комментарий. драйвер корневой файловой системы должен быть вкомпилен в ядро!

    Можно вопрос: зачем? :) initramfs еще ни кто не отменял. ;) Конечно если вы используете старое ядро, или грузите ядро без initramfs/initrd - тогда да, нужно. Но тогда еще и нужна как минимум поддержка в ядре (не модулем!) дискового контроллера.
    В общем не очень понял зачем был такой "злобный" комментарий. :)

    ОтветитьУдалить
  16. К стати к вопросу о бакапе: думаю может побороть лень и написать о bacula? :)

    ОтветитьУдалить
  17. Логическим продолжением этого поста должна стать информация о том, какие разделы нужно делать, какие размеры выбрать, ФС и опции монтирования.

    А то все говорят что хотят, от фонаря. И то, что своп должен быть размером в две оперативки (не обращая внимание на размер этой оперативки), и что разделы /usr, /var и /tmp создавать вообще не нужно - все должно сидеть в /. Зато говорят, что /boot просто необходим.

    ОтветитьУдалить
  18. Полезная статья, мне как начинающему линуксоведу пригодится.

    ОтветитьУдалить
  19. про перенос на другой винт было бы интересно почитать как новичку

    ОтветитьУдалить
  20. вопрос по надежности файловой системы Linux, если выдергунть вилку из розетки во время записи информации на винт что будет?

    и есть ли утилиты по восстановлению с винтов когда целостность раздела нарушена, по аналогии к примеру GetDataBack?

    ОтветитьУдалить
  21. Не знаю что такое GetDataBack, к тому же о надежности спорят долго и упорно, но могу сказать, что на моем eeepc файловая - xfs (монтирую с отключенным atime). Практически регулярно вырубаю его по питанию. И ни разу еще не было проблем. На домашнем - ext3, reiserfs, xfs. Тоже не было проблем. Хотя и по питанию не так уж часто рубится. При этом у жены на ext3 на ноуте уже несколько раз были проблемы, когда система не могла сама прочекать файловые. В общем вопрос надежности очень скользкий. Так же как и под виндой: знаю много примеров, когда рушились на ровном месте и fat32 и ntfs.

    ОтветитьУдалить
  22. GetDataBack - это мощные средства для восстановления потерянной, удаленной или поврежденной информации на вашем жестком диске.

    Под XP работал комп разделы под NTFS, что то копировалось и вырубило свет. Винда пыталась исправить при загрузке (в принципе не грузилась) и только все больше портила.

    С помощью GetDataBack восстановилось порядка 99% файлов.

    Вопрос в том, как доставать инфу под Linux...

    ОтветитьУдалить
  23. Если такая глобальная задница вышла, что всякие fsck не справились, то думаю ни как. :) Во всяком случае продуктов, подобных названному вами я не знаю.

    Вообще такие моменты очень хорошо учат людей делать бакапы. ;) Благо средств и инструментов для это под никсами больше чем предостаточно. Начиная от tar, cpio и того же rsync-а и заканчивая решениями а-ля энтерпрайз - бакула например. К стати дома ее поднял уже и настроил. Осталось написать про это. :) Только все руки не дойдут. :(

    ОтветитьУдалить
  24. Я очень начинающий Linux_оид (надеюсь таковым стать). И обязательно стану, если в Инете будет побольше статей, аналогичных прочитанной. Спасибо!

    ОтветитьУдалить
  25. Респект автору

    ОтветитьУдалить
  26. Занимательная статья. Я тоже написал статью о создании файловых систем в linux вот здесь http://www.artcom-ufa.ru/posts/2011/07/19/sozdanie-failovih-sistem-v-linux

    ОтветитьУдалить
  27. "Если консоль нагоняет ужас..." -- не в ужасах, предпочтениях профи и прочем подобном дело! А в простой юзабельности гуев... ну и в ...защите от дурака, от простейших очепяток, что немаловажно именно для домашнего ПК... (повторю, не о узких профи речь.)

    ОтветитьУдалить