Чтобы начать использовать новый диск в Linux, например в Ubuntu, его предварительно необходимо разметить и отформатировать. Разметить — это значит создать на нем таблицу разделов и сами разделы. Отформатировать — значит записать в раздел данные для работы выбранной файловой системы, создать журнал и т.д. Все эти действия можно сделать как с помощью графических инструментов так и в консоли. Сегодня мы рассмотрим как в Linux создать раздел диска в консоли.
В данной статье мы разберем второй вариант. Я как то уже писал в одной из своих предыдущих статей о том как узнать свободное и занимаемое место на диске в консоли. Данный опыт пригодится администраторам удаленных серверов, а так же любознательным пользователям. Все команды приведенные в статье должны выполняться с правами суперпользователя 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
Форматирование завершено. Теперь можно монтировать раздел в папку, которую мы создали в самом начале.
Подпишись на наш канал в Telegram или VK - первым узнавай о бесплатных вебинарах и курсах, а так же скидках на платное обучение.
Монтирование файловой системы в 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
Дополнительные материалы по работе с файловыми системами в Linux
- Как узнать свободное и занимаемое место на диске в консоли Linux
Надеюсь после изучения данной статьи вы нашли исчерпывающий ответ на вопрос «Как создать раздел в Linux в консоли». Если вы планируете развиваться в качестве ИТ инженера специализирующегося на Linux рекомендуем посетить раздел Курсы по ИТ, а так же подборку бесплатных курсов по тематике информационных технологий.