Как добавить диск в linux

Обновлено: 07.07.2024

Разделы дисков в Linux подключаются к системе совсем не так, как в Windows. Здесь есть корневая файловая система, куда подключаются все другие разделы и устройства, которые вы будете использовать. Системные разделы монтируются автоматически при старте системы. Но если вам нужно подключить дополнительные разделы, в некоторых случаях, может понадобиться это делать вручную.

В этой статье мы рассмотрим как выполняется монтирование диска в Linux, поговорим о том, как правильно использовать утилиту mount, umount и посмотреть какие разделы куда примонтированы.

Что такое монтирование?

Как я уже сказал Linux имеет единую корневую файловую систему, куда подключаются все запоминающие устройства и другие ресурсы. На самом деле, в Windows происходит что-то подобное, только все это скрыто от пользователя.

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

Например, вы хотите примонтировать флешку. Вы даете системе команду подключить ее в папку /run/media/имя_пользователя/UUID_флешки/. Система определяет файловую систему устройства, а затем, используя драйвера ядра подключает ее к указанной папке. Дальше вам остается работать с той папкой, как с любой другой. Больше ни о чем думать не нужно. Когда надумаете извлечь флешку, ее нужно отмонтировать.

Монтирование дисков в Linux

Обычно, монтированием занимаются специальные сервисы оболочки, но не всегда они доступны. А иногда нужно сделать все вручную, чтобы задать дополнительные опции монтирования или другие параметры. Для монтирования в Linux используется команда mount. Рассмотрим ее параметры:

$ mount файл_устройства папка_назначения

Или расширенный вариант:

$ mount опции -t файловая_система -o опции_монтирования файл_устройства папка_назначения

Опции задают различные дополнительные особенности работы утилиты. Опция -t необязательна, но она позволяет задать файловую систему, которая будет использована и иногда это очень полезно. С помощью опции -o вы можете задать различные параметры монтирования, например, монтировать только для чтения и т д. Последних два параметра - это файл устройства, например, /dev/sda1 и папка назначения, например, /mnt.

Перед тем как перейти к рассмотрению примеров работы утилитой, давайте рассмотрим ее основные опции:

  • -V - вывести версию утилиты;
  • -h - вывести справку;
  • -v - подробный режим;
  • -a, --all - примонтировать все устройства, описанные в fstab;
  • -F, --fork - создавать отдельный экземпляр mount для каждого отдельного раздела;
  • -f, --fake - не выполнять никаких действий, а только посмотреть что собирается делать утилита;
  • -n, --no-mtab - не записывать данные о монтировании в /etc/mtab;
  • -l, --show-labels - добавить метку диска к точке монтирования;
  • -c - использовать только абсолютные пути;
  • -r, --read-only - монтировать раздел только для чтения;
  • -w, --rw - монтировать для чтения и записи;
  • -L, --label - монтировать раздел по метке;
  • -U, --uuid - монтировать раздел по UUID;
  • -T, --fstab - использовать альтернативный fstab;
  • -B, --bind - монтировать локальную папку;
  • -R, --rbind - перемонтировать локальную папку.

Это не все, но основные опции, которые вам понадобятся во время работы с утилитой. Также, возможно, вы захотите знать список опций монтирования, которые могут быть полезными. Они все перечислены в статье автоматическое монтирование в fstab и писать их еще и здесь нет смысла. А теперь перейдем к примерам и рассмотрим как монтировать диск в linux.

Монтирование разделов с помощью mount

Монтирование разделов с помощью mount выполняется очень просто. Фактически в большинстве случаев будет достаточно упрощенной версии команды. Например, смонтируем раздел /dev/sdb6 в папку /mnt:

sudo mount /dev/sdb6 /mnt/


В большинстве случаев вы будете вынуждены выполнять команду mount с правами суперпользователя, если обратное не указано в fstab (опция монтирования users). Вы можете посмотреть информацию о процессе монтирования добавив опцию -v:

sudo mount -v /dev/sdb6 /mnt/


Если нужно, вы можете указать файловую систему с помощью опции -t:

sudo mount -v -t ext4 /dev/sdb6 /mnt

Если необходимо примонтировать файловую систему только для чтения, то вы можете использовать опцию -r или опцию монтирования -o ro, результат будет одинаковым:

sudo mount -t ext4 -r /dev/sdb6 /mnt
$ sudo mount -t ext4 -o ro /dev/sdb6 /mnt

Вы можете использовать и другие опции чтобы выполнить монтирование разделов linux, например, указать, что на этом разделе нельзя выполнять программы:

sudo mount -t ext4 -o noexec /dev/sdb6 /mnt

Обратите внимание, что вы не можете использовать опции uid, gid, fmask для файловых систем ext. Они поддерживаются только в FAT, vFAT, exFAT.

Вы можете использовать не только имена устройств чтобы выполнить монтирование диска в linux. Для этого можно применять UUID или метки, например, монтирование с помощью UUID:


Посмотреть uuid для ваших разделов можно с помощью команды:


Точно так же вы можете использовать метки. Команда монтирования диска linux будет выглядеть так:

sudo mount --label="home" /mnt/


Вы можете примонтировать одну папку в другую, для этого используйте опцию --bind

sudo mount --bind /mnt/ /media/

Возможно, не только монтирование разделов linux, но и монтирование файлов, если они содержат файловую систему, например, образов дисков. Монтирование образа диска linux работает точно так же:

Посмотреть список всех примонтированных устройств можно просто выполнив mount без параметров:


Размонтирование устройств в Linux

Когда вы хотите завершить работу с устройством, особенно с флешкой, его нужно размонтировать. Для этого существует утилита umount. В качестве параметров она принимает точку монтирования или устройство. Например:

sudo umount /mnt

Теперь ваше устройство не смонтировано. Но иногда может возникнуть ошибка размонтирования. Система сообщит, что устройство занято: umount: /mnt: target is busy.


Проблему можно решить закрыв все программы, которые могут использовать любой файл в этой папке. Какие именно это программы вы можете узнать с помощью команды lsof:

lsof -w /mnt
$ lsof -w /dev/sdb6


Здесь вы видите всю необходимую информацию, чтобы понять что происходит и что с этим делать. Утилита вывела название программы, ее PID, и даже файл, с которым она работает. Вы можете завершить все программы, а потом снова повторить попытку или используйте опцию -l, файловая система будет отключена немедленно, несмотря на то, что она занята:

sudo umount -l /mnt

Выводы

В этой статье мы рассмотрели как выполняется монтирование жестких дисков linux, а также разделов и даже образов. Вы знаете как правильно использовать опции mount и umount. Если у вас остались вопросы, спрашивайте в комментариях!

В этой небольшой заметке я покажу на практическом примере, как работать с дисками в Linux.

Активация диска в Linux

Предположим вы подключили новый диск, на котором ещё нет файловой системы. Система его не видит и нам нужно выполнить команды для его подключения.

Скажу сразу, все описанные здесь действия можно выполнять в командах с графическим интерфейсом. Я же буду размечать и форматировать диски в командной строке — это более универсальный способ, так как позволяет настроить диски и разделы даже в операционных системах, на которых нет графического окружения.

При подключении нового диска нам нужно:

  • разметить его на разделы
  • отформатировать каждый раздел для создания файловой системы
  • смонтировать диск для возможности записи и чтения данных
  • настроить автоматическое монтирование при включении компьютера

Как узнать имена дисков, как просмотреть все диски в системе

Начать нужно с того, чтобы узнать имя диска, который мы будем изменять. В Linux совсем непохожая на Windows система обозначения дисков. Вместо привычных дисков C, D, E и так далее, в Linux диски это устройства в папке /dev/. В dev вообще все возможные устройства, даже весьма экзотические, не существующие в Windows.

Чтобы посмотреть доступные диски, выполните команду:


Как видно из скриншота, имеется диск /dev/nvme0n1. Затем перечислены два устройства /dev/nvme0n1p1 и /dev/nvme0n1p2. По совпадающему части названия nvme0n1 можно понять, что это разделы, на которые разделён диск /dev/nvme0n1.

Также имеется диск /dev/sda, который не разделён ни на какие разделы — именно его я и буду подключать.

Разметка дисков (разделение на разделы) в Linux

В консоли диск можно разбить на разделы командой cfdisk. После неё укажите имя диска, с которым вы хотите выполнить действия:


Диск может быть GPT или MBR (показывается как dos). Вы без труда найдёте множество информации об этих таблицах разделов в Интернете. Только отмечу, что GPT является более современной и имеет больше возможностей. Поэтому если не нужно работать со старым железом, которое понимает только MBR, то выбираем GPT.

Для создания диска выберите Новый:


Введите его размер.

Если нужно, поменяйте тип раздела:


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

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

Для форматирования в ext4:

Для форматирования в ext3:

Для форматирования в ext2:

Для форматирования в FAT32:

Мой пример (я не стал разбивать диск на разделы):


Кстати, если вы хотите отформатировать раздел, который уже используете, то его нужно сначала отмонтировать (об этом дальше).

Монтирование и размонтирование дисков

С дисками в /dev/ нельзя работать напрямую, то есть нельзя на них записывать файлы или копировать с них файлы. Для работы с ними их нужно смонтировать. Это делается командой mount.

Диск подключается к точке монтирования и уже в этой папке можно работать с содержимом диска.

Эта концепция может показаться непривычной пользователям Windows, но это очень удобно! Диск можно смонтировать в любую папку. Например, домашняя папка может быть на другом диске — удобно при переустановке системы — данные не нужно копировать в безопасное место, поскольку они уже на другом диске.

Для монтирования используется команда вида:

Допустим, я хочу, чтобы новый диск был подключён (смонтирован) к папке /mnt/disk_d. Название можно выбрать любое и точка монтирования необязательно должна быть в директории /mnt/ - можно сделать в домашней папке или в любой другой.

Начинаем с создания директории, в которую будет смонтирован диск:

Разрешаем доступ всем в этот диск, чтобы обычный пользователь также мог смотреть и записывать туда файлы:

На самом деле, права доступа можно настроить более тонко — без полного разрешения для всех.

Для размонтирования диска используется любая из двух команд:

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

Диски для монтирования при запуске Linux прописаны в файле /etc/fstab.

Допустим, я хочу при загрузке монтировать диск /dev/sda в директорию /mnt/disk_d/. При этом я хочу чтобы диск был доступен для чтения и записи пользователем. Тогда я создаю каталог — точку монтирования:

Открываю файл /etc/fstab:

и дописываю туда следующую строчку:

В этой строке вам нужно заменить

  • /dev/sda — на диск, который вы желаете смонтировать
  • /mnt/disk_d — на вашу точку монтирования, которую вы выбрали для своего диска.
  • ext4 — на файловую систему вашего диска

Если вы не уверены в файловой системе или её обозначении, то выполните команду:

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

Чтобы ваш пользователь имел доступ к этой папке без необходимости повышать свои привилегии, выполните команду:

Можно более тонко настроить права доступа — например, создав группу, только члены которой будут иметь доступ к диску.

Обратите внимание, что если вы что-то неправильно сделали в файле /etc/fsta, то система не сможет загрузиться в графический интерфейс и вам придётся всё исправлять из консоли. Ссылка на дополнительную инструкцию в конце этой статьи.

Для проверки записей в файле /etc/fstab используйте команду


На скриншоте можно увидеть, что диск с UUID равным 26FC3023FC2FEC2D является недоступным (unreachable). Это может означать, что запись в файле /etc/fstab имеет ошибку. Но в данном случае диск с UUID=26FC3023FC2FEC2D — это съёмный диск, для его монтирования указана опция nofail (не вызывать фатальную ошибку, даже если диск отсутствует), поэтому предупреждение можно проигнорировать.

Для вывода более подробной информации добавьте опцию --verbose:


Все пункты успешно прошли проверку, рассмотрим более подробно записи проблемного диска:

  • /mnt/disk_e — точка монтирования
  • [ ] target exists — целевая папка (точка монтирования), существуют, то есть директория /mnt/disk_e имеется в системе
  • [ ] VFS options: rw — найдена такая опция монтирования как rw, то есть диск монтируется для чтения и для записи. VFS — это опции ядра, системных вызовов. Эти опции одинаковы для всех файловых систем.
  • [ ] FS options: utf8 — найдена опция, специфичная для данной файловой системы. Этой опцией является utf8, то есть для преобразования имён файлов будет использоваться кодировка UTF-8.
  • [ ] userspace options: noauto,nofail — здесь перечислены опции пользовательского пространства. Опция noauto означает не монтировать автоматически, а опция nofail означает не сообщает об ошибках для этого устройства, если оно не существует — эта опция важна для съёмных носителей и сетевых дисков, которые могут отсутствовать во время загрузки компьютера.

Подключение съёмного носителя (флешки, внешнего диска) в Linux

Между прочим, многие дистрибутивы Linux при подключении USB флешки или внешнего диска автоматически их монтируют. Автоматическое монтирование обычно является функцией окружения рабочего стола. То есть на одном и том же дистрибутиве Linux, но с разными рабочими столами (версии Linux Mint как пример) автомонтирование может иметься или отсутствовать.

Если этого не произошло, значит нужно смонтировать вручную. Этот процесс ничем не отличается от обычного монтирования дисков: также создайте точку монтирования и используйте команду mount.

Съёмные носители можно монтировать через /etc/fstab, для этого даже есть специальная опция nofail — игнорировать ошибки, если диск отсутствует.

Как просмотреть все диски и точки монтирования

Для этого используйте уже знакомую нам команду:


Как удалить разделы диска

Если вы хотите удалить всё содержимое диска, в том числе его разбивку на разделы, то это делается так:

Откройте диск в gdisk:

Для перехода в экспертный режим там введите

Затем для удаления GPT введите

Дважды согласитесь, чтобы полностью очистить диск.

Перемонтирование диска с правами записи

Иногда диски монтируются только с правами чтения. В этом случае можно скопировать файлы с диска, но нельзя на него что-либо записать или удалить. Перемонтировать диск на запись можно одной командой:

В ней /dev/sdb1 замените на имя вашего раздела.

Если вы столкнулись с ошибкой:

То нужно выполнить команду (замените /dev/sdb1 на ваш раздел):

После этого перемонтируйте диск.

Обратите внимание, что если вы монтируете диск с файловой системой NTFS, то у вас должен быть установлен пакет ntfs-3g, иначе что бы вы не делали, диск будет только для чтения.

Заключение

Если у вас ещё остались вопросы, то задавайте их в комментариях.

Ещё несколько советов и проблемных случаев рассмотрено в статье «Работа с дисками в BlackArch (монтирование, решение проблем)» - эта статья подходит для всех дистрибутивов, не только BlackArch.

Как подключить дополнительный диск в Linux (создание таблицы разделов, разметка, форматирование и монтирование)

Рассмотрим пример добавления дополнительного диска в Linux при условии, что нужно создать на новом диске таблицу разделов, затем создать раздел диска, отформатировать этот диск и настроить автоматическое монтирование нового раздела при загрузке системы. Для операций с диском будем использовать утилиту parted.

В нашем примере к виртуальной машине (на базе гипервизора Microsoft Hyper-V) с ОС Ubuntu Linux 14.04 LTS подключается дополнительный диск. Для виртуальной машины Hyper-V второго поколения (Gen2) это можно сделать «на горячую», то есть не останавливая гостевую ОС и не выключая виртуальную машину.

Разметка и форматирование диска

После того, как диск добавлен запросим список всех доступных системе дисков командой:


Как видно, система обнаружила новый диск /dev/sdd, и этот диск не имеет разметки.

Войдём в режим работы с утилитой parted:

Приглашение командной строки сменит вид на «(parted)». Сменим текущий диск (по умолчанию текущим диском устанавливается первый найденный в системе, например /dev/sda) на тот, с которым мы собираемся выполнять операции разметки:


После каждой команды изменяющей конфигурацию диска будем выполнять команду print для наглядности происходящих с диском изменений.

На текущем выбранном диске создадим новую пустую таблицу разделов с типом gpt.


Создадим первичный раздел, который будет занимать весь объем диска:


Как видим, создан раздел без файловой системы. Теперь нам нужно отформатировать этот раздел с нужной нам файловой системой, например ext4. Как я понял, утилита parted не умеет форматировать разделы в ext4, поэтому завершим работу с утилитой и выполним форматирование другими средствами.

Посмотрим текущее положение вещей, и увидим что имеется раздел /dev/sdd1 без файловой системы:


Форматирование только что созданного раздела в интересующую нас файловую систему ext4 мы можем выполнить с помощью утилиты mkfs.ext4 командой:


Проверим результат, например так:


Монтирование разделов диска

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

Создаём каталог, в который будем монтировать новый раздел и сразу монтируем его:

Пробуем создать новый пустой файл в смонтированном в каталог разделе, проверяя тем самым возможность записи в этот каталог. Затем пробуем удалить созданный файл.

Выясним идентификатор раздела (UUID), чтобы использовать его для настройки автоматического монтирования:


Чтобы монтирование диска происходило автоматически при каждой загрузке системы внесём изменения в системный конфигурационный файл fstab.

Добавим в конец файла строку монтирования нашего раздела:

После сохранения конфигурационного файла проверяем, что команда обработки файла fstab утилитой mount выполняется без ошибок

Перезагружаем систему и убеждаемся в том, что раздел диска автоматически смонтирован во время загрузки и нет проблем с записью файлов в каталог монтирования.

date

11.12.2020

directory

CentOS, Linux

comments

комментариев 6

В этой статье мы рассмотрим, как добавить новый диск на сервер с Linux CentOS: как обнаружить новый диск, разбить его на разделы, отформатировать и смонтировать. В этом примере мы добавляем новый диск на физический Linux сервер (как добавить новый диск виртуальную машину KVM мы рассматривали ранее).

Добавление нового диска, разметка, создание разделов в Linux

Обычно для работы с дисками я использую утилиту fdisk. Но так как она позволяет создавать разделы максимального размера в 2ТБ, в данной инструкции мы будем использовать утилиту parted.

Если вы добавляете новый диск в RAID на базе mdadm обратитесь к этой статье. Про LVM тома здесь.

Parted – свободный редактор дисковых разделов, предназначенный для создания и удаления разделов. Также parted может использовать для копирования разделов между дисками.

По умолчанию parted уже установлен в CentOS Linux. Если у вас его по каким-то причинам нет, вы можете установить его с помощью команды пакетного менеджера:

После подключения физического или виртуального диска к серверу, нужно проверить, определился ли он:

Этак команда выведет информацию о дисках в системе.

fdisk -l опредлеить новый диск в Linux

В моем случае это диск /dev/sda размером 5.5 Тб. Также вы можете вывести список дисков с помощью команды lsblk:

lsblk список дисков и разделов в linux centos

Подробную информацию о физическом диске, его характеристиках можно получить с помощью утилит hdparm, smartctl и lshw. Об этом в статье по ссылке.

Теперь нужно выбрать новый диск в контексте утилиты parted:

В контексте parted выполните команду print , чтобы вывести информацию о диске и его разделах (если они имеются):

parted print - вывести информацию р разделах на диске

Если дисков несколько, можно переключать между ними в оболочке parted, используя команду select:

Нажмите Enter и укажите название диска.

(parted) select

Прежде чем создать разделы, нужно создать таблицу разделов для диска. Мы будем использовать таблицу разделов GPT:

(parted) mklabel GPT

mklabel GPT создать таблицу разделов

Система предупредит, что все данные на диске будут уничтожены. Подтвердите это.

Для создания нового раздела на диске, используется команда mkpart:

Укаэите имя раздела, файловую систему, первый и последний сектор раздела (в Мб). Так как у нас нет ни одного раздела, мы начинаем с 1 и заканчиваем 300000. Таким образом будет создан новый раздел размером 300 Гб:

parted создать новый раздел на диске в linux

Раздел создан, можно вывести информацию о нем с помощью команды print.

Мы создали раздел test, размером 300Гб и файловой системой ext4. Чтобы выйти с оболочки parted, наберите quit.

Несмотря на то, что при создании раздела мы выбрали файловую систему ext4, нужно отформатировать раздел, чтобы он определялся как полноценный раздел диска с UUID:

Если раздел не форматировать, ваш раздел будет определяться так:

У него не будет иметь UUID с помощью которого мы в дальнейшем будем монтировать данный раздел.

lsblk

Удалить созданный раздел вы можете с помощью команды rm. Войдите в оболочку parted нужного диска:

И удалите нужный раздел:

В моем случае раздел был один (если у вас их несколько, укажите нужный).

Монтирование нового диска, добавление в fstab

После того как на диске создали раздел, можно смонтировать его. Создадим новую директорию на сервере:

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

Также раздел можно примонтировать через UUID раздела:

UUID раздела можно получить с помощью команды blkid:

blkid получить uuid раздела

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

UUID="3f5e32ac-ba1a-4167-8b06-c8ee35bf8071" /test_disk ext4 defaults 1 2

Сохраните файл и примонтируйте все разделы:

Для удаления монтирования, используйте команду:

Проверим, что раздел доступен. Создадим в нем файл:

Мы создали файл с нулями размером 40Гб. С помощью следующей команды можно вывести занятое место на разделе:

Итак, мы рассмотрели, как подключить новый диск к Linux серверу, создать на нем разделы и смонтировать.

Читайте также: