Создание Файловых систем в Linux

Мы уже делали обзор популярных Файловых систем в Linux и разобрались как они работают. Для того что бы размещать файлы на жестком диске или другом носителе например флешке нам нужно как минимум проделать несколько этапов а именно — разбить диск на разделы (создать таблицу разделов) и создать файловую систему (формотирование) с последующим монтированием в систему.

Разбитие диска на разделы и создание ФС в Linux делается при помощи специальных утилит — cfdisk fdisk sfdisk mke2fs mkfs mkfs.ext2 mkfs.ext3 mkfs.ext4 mkswap partimage parted указывая им в качестве аргумента конкретное блочное устройство (/dev/***).

Блочные устройства HDD вида /dev/sda можно использовать целиком для единственной ФС, но это редко применяется на практике. Лучше разделить все пространство на разделы меньшего размера и использовать их под разные задачи.

Обзор блочных устройств:

Посмотреть какие есть блочные устройства в системе можно так

для sata

root@debian ~ # ls -l /dev/sd*
brw-rw---- 1 root disk 8, 0 Мар 11 19:03 /dev/sda
brw-rw---- 1 root disk 8, 1 Мар 10 21:23 /dev/sda1
brw-rw---- 1 root disk 8, 2 Мар 10 21:23 /dev/sda2
brw-rw---- 1 root disk 8, 5 Мар 10 21:23 /dev/sda5
brw-rw---- 1 root disk 8, 16 Мар 10 22:31 /dev/sdb
brw-rw---- 1 root disk 8, 17 Мар 10 21:23 /dev/sdb1
brw-rw---- 1 root disk 8, 18 Мар 10 21:23 /dev/sdb2
brw-rw---- 1 root disk 8, 21 Мар 10 21:23 /dev/sdb5
brw-rw---- 1 root disk 8, 32 Мар 11 19:05 /dev/sdc
brw-rw---- 1 root disk 8, 33 Мар 11 17:59 /dev/sdc1

b — блочное устройство, судя по выводу у нас 3 физических диска.

или

ls /dev
fdisk -l

Вывестии информацию о жестком диске можно так

Читайте также:  Как создать резервную копию и восстановить репозиторий SVN в Linux

hdparm -I /dev/sdХ
smartctl -a /dev/sdХ

Рассмотрим на примере диска /dev/sda

/dev/sda1
/dev/sda2
/dev/sda5

Названия соотвуют их разделам. Раньше рограммы разметки диска могли делать максимум четыре раздела. В некоторых случаех этого было недостаточно и для обхода ограничения был придуман расширенный раздел (Extended). Расширенный раздел засчитываются в лимит для 4 первичных разделов и может содержать любое количество логических разделов внутри себя. У меня его нету поэтому не покажу как он выглядит.

Способы разметки диска:

Посмотреть таблицу разделов диска можно при помощи fdisk (p вывести таблицу разделов диска).

root@debian ~ # fdisk /dev/sdc

Command (m for help): p

Disk /dev/sdc: 60.0 GB, 60022480896 bytes
255 heads, 63 sectors/track, 7297 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xdf87df87

Device Boot Start End Blocks Id System
/dev/sdc1 * 1 7297 58613121 83 Linux

или

root@debian ~ # fdisk -l /dev/sdc

Disk /dev/sdc: 60.0 GB, 60022480896 bytes
255 heads, 63 sectors/track, 7297 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xdf87df87

Device Boot Start End Blocks Id System
/dev/sdc1 * 1 7297 58613121 83 Linux

Давайте переразобьем диск /dev/sdc (у меня это пустой ssd диск)
Внимание! Все данные на диске будут удалены =)

Вариант при помощи fdisk

Справка команд fdisk

a переключение флага загрузки
b редактирование метки диска bsd
c переключение флага dos-совместимости
d удаление раздела
l список известных типов файловых систем
m вывод этого меню
n добавление нового раздела
o создание новой пустой таблицы разделов DOS
p вывод таблицы разделов
q выход без сохранения изменений
s создание новой чистой метки диска Sun
t изменение id системы раздела
u изменение единиц измерения экрана/содержимого
v проверка таблицы разделов
w запись таблицы разделов на диск и выход
x дополнительная функциональность (только для экспертов)

Читайте также:  Как установить Swift на Ubuntu 16.04 LTS

fdisk /dev/sdc

Command (m for help): d
Command (m for help): 1
Command (m for help): w

я выбрал удаление раздела d, раздел 1 и записал изменения на диск, теперь он не содержит разделы.

Разабьем диск /dev/sdc

fdisk /dev/sdc

Command (m for help): n
p primary partition (1-4)
Partition number (1-4): 1
First cylinder (1-7297, default 1):1
Last cylinder, +cylinders or +size{K,M,G} (1-7297, default 7297): +10G
Command (m for help): w

Проверяем

fdisk -l /dev/sdc

Мы создали раздел размером 10гб, если вывод аналогичен то все получилось

root@debian ~ # fdisk -l /dev/sdc

Disk /dev/sdc: 60.0 GB, 60022480896 bytes
255 heads, 63 sectors/track, 7297 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xdf87df87

Device Boot Start End Blocks Id System
/dev/sdc1 1 1306 10490413+ 83 Linux

Таким макаром можно делать остальные разделы, по умолчанию тип фс Linux если нужен другой то

Command (m for help): t
Hex code (type L to list codes): ХХХ — номер.
Command (m for help): w
Command (m for help): l

Вариант при помощи cfdisk

cfdisk /dev/sdc

Тут все еще проще визуально все понятно, например:

для создания раздела выберите New
для удаления delete
по окончанию работы нажмите Write что бы применить изменения.

Читайте также:  Добавить всем право на чтение в Linux

Are you sure you want to write the partition table to disk? (yes or no): yes — пишите yes.

Ну и для полного счастья осталось только отформатировать созданные ранее разделы.

Формирование диска

Формотировать и создовать новую фс будем при помощи утилиты mkfs, можно посмотреть что у нас есть

mkfs + tab

root@debian ~ # mkfsmkfs mkfs.cramfs mkfs.ext3 mkfs.ext4devmkfs.bfs mkfs.ext2 mkfs.ext4 mkfs.minix

Файловые системы типо XFS команда mkfs не поддерживает для этого надо поставить пакет xfsprogs.

Будем форматировать /dev/sdc1 в ext4.

mkfs.ext4 /dev/sdc1

root@debian ~ # mkfs.ext4 /dev/sdc1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
3670016 inodes, 14653280 blocks
732664 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
448 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 36 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

SWAP делается так (тип созданного раздела должен быть специальным 82 Linux swap)

mkswap /dev/sdc5
swapon /dev/sdc5

root@debian ~ # mkswap /dev/sdc5
Setting up swapspace version 1, size = 9783548 KiB
no label, UUID=fe193ed2-6e46-45f0-82ee-9fc6b652a6b5
root@debian ~ #
root@debian ~ # swapon /dev/sdc5
root@debian ~ #
root@debian ~ # swapon -s
Filename Type Size Used Priority
/dev/sdc5 partition 9783544 0 -1
root@debian ~ #