Как добавить диск в 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 выполняется без ошибок
Перезагружаем систему и убеждаемся в том, что раздел диска автоматически смонтирован во время загрузки и нет проблем с записью файлов в каталог монтирования.
В этой статье мы рассмотрим, как добавить новый диск на сервер с Linux CentOS: как обнаружить новый диск, разбить его на разделы, отформатировать и смонтировать. В этом примере мы добавляем новый диск на физический Linux сервер (как добавить новый диск виртуальную машину KVM мы рассматривали ранее).
Добавление нового диска, разметка, создание разделов в Linux
Обычно для работы с дисками я использую утилиту fdisk. Но так как она позволяет создавать разделы максимального размера в 2ТБ, в данной инструкции мы будем использовать утилиту parted.
Если вы добавляете новый диск в RAID на базе mdadm обратитесь к этой статье. Про LVM тома здесь.Parted – свободный редактор дисковых разделов, предназначенный для создания и удаления разделов. Также parted может использовать для копирования разделов между дисками.
По умолчанию parted уже установлен в CentOS Linux. Если у вас его по каким-то причинам нет, вы можете установить его с помощью команды пакетного менеджера:
После подключения физического или виртуального диска к серверу, нужно проверить, определился ли он:
Этак команда выведет информацию о дисках в системе.
В моем случае это диск /dev/sda размером 5.5 Тб. Также вы можете вывести список дисков с помощью команды lsblk:
Теперь нужно выбрать новый диск в контексте утилиты parted:
В контексте parted выполните команду print , чтобы вывести информацию о диске и его разделах (если они имеются):
Если дисков несколько, можно переключать между ними в оболочке parted, используя команду select:
Нажмите Enter и укажите название диска.
Прежде чем создать разделы, нужно создать таблицу разделов для диска. Мы будем использовать таблицу разделов GPT:
(parted) mklabel GPT
Система предупредит, что все данные на диске будут уничтожены. Подтвердите это.
Для создания нового раздела на диске, используется команда mkpart:
Укаэите имя раздела, файловую систему, первый и последний сектор раздела (в Мб). Так как у нас нет ни одного раздела, мы начинаем с 1 и заканчиваем 300000. Таким образом будет создан новый раздел размером 300 Гб:
Раздел создан, можно вывести информацию о нем с помощью команды print.
Мы создали раздел test, размером 300Гб и файловой системой ext4. Чтобы выйти с оболочки parted, наберите quit.
Несмотря на то, что при создании раздела мы выбрали файловую систему ext4, нужно отформатировать раздел, чтобы он определялся как полноценный раздел диска с UUID:
Если раздел не форматировать, ваш раздел будет определяться так:
У него не будет иметь UUID с помощью которого мы в дальнейшем будем монтировать данный раздел.
Удалить созданный раздел вы можете с помощью команды rm. Войдите в оболочку parted нужного диска:
И удалите нужный раздел:
В моем случае раздел был один (если у вас их несколько, укажите нужный).
Монтирование нового диска, добавление в fstab
После того как на диске создали раздел, можно смонтировать его. Создадим новую директорию на сервере:
Также раздел можно примонтировать через UUID раздела:
UUID раздела можно получить с помощью команды blkid:
Но раздел будет смонтирован только до перезагрузки сервера. При следующей загрузке раздел опять придется монтировать вручную. Для автомонтирования добавьте строку для нового раздела в файл /etc/fstab:
UUID="3f5e32ac-ba1a-4167-8b06-c8ee35bf8071" /test_disk ext4 defaults 1 2
Сохраните файл и примонтируйте все разделы:
Для удаления монтирования, используйте команду:
Проверим, что раздел доступен. Создадим в нем файл:
Мы создали файл с нулями размером 40Гб. С помощью следующей команды можно вывести занятое место на разделе:
Итак, мы рассмотрели, как подключить новый диск к Linux серверу, создать на нем разделы и смонтировать.
Читайте также: