Мы уже делали обзор популярных Файловых систем в 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
Вывестии информацию о жестком диске можно так
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 дополнительная функциональность (только для экспертов)
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 что бы применить изменения.
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 ~ #

