Меню Закрыть

Как создать раздел в Linux в консоли

Чтобы начать использовать новый диск в Linux, например в Ubuntu, его предварительно необходимо разметить и отформатировть. Разметить — это значит создать на нем таблицу разделов и сами разделы. Отформатировать  — значит записать в раздел данные для работы выбранной файловой системы, создать журнал и т.д. Все эти действия можно сделать как с помощью графических инструментов так и в консоли.

В данной статье мы разберем второй вариант. Я как то уже писал в одной из своих предыдущих статей о том как узнать свободное и занимаемое место на диске в консоли. Данный опыт пригодится администраторам удаленных серверов, а так же любознательным пользователям. Все команды приведенные в статье должны выполняться с правами суперпользователя root. В статье приведен синтаксис характерный для ubuntu и ее производных, для использования в других дистрибутивах вы можете просто убрать из строки sudo.

Создание точки монтирования

Первое, что необходимо сделать — это создать точку монтирования, куда будет подключен новый диск. Это может быть любая пустая папка в файловой системе. Можно смонтировать и в не пустую папку, но после монтирования содержимое этой папки просмотреть будет невозможно до тех пор пока вы не отмонтируете файловую систему. Для общего пользования проще всего создать папку в каталоге /mnt. Пример команды:

sudo mkdir /mnt/disk2

Где disk2 — это папка куда будет смонтирован новый диск.

Разметка диска в Linux

Для разметки используется команда fdisk. Первым делом необходимо определить имя нового диска. Все диски в linux именуются по следующей схеме sda1 — где sd — значит scsi disk (в современных дистрибутивах все диски чаще всего именуются начиная с sd, по крайней мере в ubuntu и ее производных), a — это первый подключенный диск, например sata диск подключенный в первый порт sata контроллера, 1 -номер раздела на этом диске.

Всего на диске может быть 4 основных раздела или 3 основных и один расширенный, в котором можно создавать сколько угодно логических дисков. Логические диски в расширенном разделе нумеруются с цифры 5. Таким образом sda1 — указывает на первый первичный раздел первого диска, а например sdb5 — указывает на первый логический диск расширенного раздела второго физического диска.

Зная эту теорию перейдем к разметке диска. Первое, что нам необходимо  — это получить список доступных и размеченных дисков. Сделать это можно командой sudo fdisk -l:

sudo fdisk -l
[sudo] password for testuser: 

Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000ced88

 Device Boot Start End Blocks Id System
/dev/sda1 * 2048 39845887 19921920 83 Linux
/dev/sda2 39847934 41940991 1046529 5 Extended
/dev/sda5 39847936 41940991 1046528 82 Linux swap / Solaris

Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdb doesn't contain a valid partition table

По размеру и отсутствию разделов (Disk /dev/sdb doesn't contain a valid partition table) мы определяем номер дискового устройства, на котором необходимо создать и отформатировать раздел. Делаем это командой sudo fdisk /dev/sdb:

sudo fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x541a2b7b.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Command (m for help): n

Partition type:
 p primary (0 primary, 0 extended, 4 free)
 e extended
Select (default p): 
Using default response p
Partition number (1-4, default 1): 
Using default value 1
First sector (2048-41943039, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): 
Using default value 41943039

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

В данном примере сразу после приглашения Command (m for help): мы отправляем команду n — для создания нового раздела. Далее, поскольку нам необходим единственный раздел на весь диск, соглашаемся со всеми вопросами просто нажимая Enter. А именно Partition Type — primary, Partition Number — 1, First Sector 2048, Last Sector 41943039. После второго приглашения Command (m for help):  вводим команду w для записи таблицы разделов на диск. Если вам необходим иной размер раздела то на шаге Last Sector вы можете указать размер в килобайтах, мегабайтах или гигабайтах. Например так 100G — 100 Гб.

Форматирование раздела в linux

Для того чтобы отформатировать свежесозданный раздел используется команда mkfs. Пользоваться ей очень просто. Достаточно через точку указать файловую систему, в которую необходимо отформатировать раздел, а затем через пробел устройство которое необходимо отформатировать. В нашем примере это устройство /dev/sdb1 (мы уже создали на /dev/sdb раздел, поэтому добавляем единичку в конец).

sudo mkfs.ext4 /dev/sdb1
[sudo] password for testuser: 
mke2fs 1.42.9 (4-Feb-2014)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 5242624 blocks
262131 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
160 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

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

Форматирование завершено. Теперь можно монтировать раздел в папку, которую мы создали в самом начале.

Монтирование файловой системы в linux

Для монтирования используется команда mount. Чтобы смонтировать наш новый диск в папку, что мы создали в самом начале статьи достаточно ввести команду:

sudo mount /dev/sdb1 /mnt/disk1

Команда не выведет никаких уведомлений, поэтому чтобы убедится, что раздел смонтирован вводим команду mount без ключей.

mount
/dev/sda1 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/cgroup type tmpfs (rw)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755)
none on /sys/fs/pstore type pstore (rw)
systemd on /sys/fs/cgroup/systemd type cgroup (rw,noexec,nosuid,nodev,none,name=systemd)
vmware-vmblock on /run/vmblock-fuse type fuse.vmware-vmblock (rw,nosuid,nodev,default_permissions,allow_other)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=testuser)
/dev/sdb1 on /mnt/disk1 type ext4 (rw)

В последней строке видим смонтированную нашу файловую систему. Чтобы отмонтировать ее достаточно ввести команду unmount:

sudo unmount /mnt/disk1

Автоматическое монтирование при загрузке

По понятным причинам монтировать каждый раз файловую систему вручную очень неудобно. Для того, чтобы настроить автоматическое монтирование отредактируем файл /etc/fstab. В общем случае синтаксис файла очень простой в одной строке по порядку идут следующие данные:
"устройство"  "точка монтирования"  "файловая система" "опции" "дамп" "пропуск" 

Последние два поля это флаги для резервного копирования "dump" и пропуск автоматической проверки диска "pass". Обычно их значения оставляют равным нулю. Давайте разберемся с остальными опциями. Первое поле устройство в нашем случае это /dev/sdb1, второе поле это точка монтирования в нашем случае она равна /mn/disk1, далее файловая система — у нас это ext4, опции монтирования можно поставить defaults. Если вы добавляете строку в конец файла то не забудьте добавить пустую строку после нее. Итоговая строка выглядит следующим образом:

/dev/sdb1 /mnt/disk1 ext4 defaults 0 0

Обратите внимание, нумерация физических дисков идет по подключенным дискам, а не по номерам портов в которые они подключены. Таким образом если вы сначала подключите во второй порт sata контроллера один диск, то он будет нумероваться как sda, но если вы подключите после этого в первый порт еще один диск нумерация может изменится! Чтобы этого не произошло лучше всего будет в fstab прописать не символьное имя устройства, а UUID диска. Получить его можно командой sudo blkid -c /dev/null :

sudo blkid -c /dev/null
/dev/sda1: UUID="d2dc2ffc-ac76-4377-ad58-e6c21e9a031f" TYPE="ext4" 
/dev/sda5: UUID="bf965acc-f452-476c-ad68-48cc81a3f897" TYPE="swap" 
/dev/sdb1: UUID="b1c23340-5e7b-4a86-a4d6-5f6a4b3438ae" TYPE="ext4" 

Далее в строке монтирования в файле fstab указать вместо /dev/sdb1 UUID=b1c23340-5e7b-4a86-a4d6-5f6a4b3438ae. Итоговая строчка будет выглядеть подобным образом:

UUID=b1c23340-5e7b-4a86-a4d6-5f6a4b3438ae /mnt/disk1 ext4 defaults 0 0

Похожие записи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.