Проверить точки монтирования linux

Check if directory mounted with bash

I want to check /foo/bar though with a bash script, and see if its been mounted? If not, then call the above mount command, else do something else. How can I do this? CentOS is the operating system.

8 Answers 8

You didn’t bother to mention an O/S.

Ubuntu Linux 11.10 (and probably most up-to-date flavors of Linux) have the mountpoint command.

Here’s an example on one of my servers:

$ mountpoint /oracle /oracle is a mountpoint $ mountpoint /bin /bin is not a mountpoint 

Actually, in your case, you should be able to use the -q option, like this:

mountpoint -q /foo/bar || mount -o bind /some/directory/here /foo/bar 

You actually have something mounted at the time you ran the ‘mountpoint’ command? Even if it’s intended to be a mountpoint, unless it actually has something mounted, it’s just a directory.

As mentioned in another comment mountpoint doesn’t work with bind mounts. The snippet will mount the dir multiple times

Running the mount command without arguments will tell you the current mounts. From a shell script, you can check for the mount point with grep and an if-statement:

if mount | grep /mnt/md0 > /dev/null; then echo "yay" else echo "nay" fi 

In my example, the if-statement is checking the exit code of grep , which indicates if there was a match. Since I don’t want the output to be displayed when there is a match, I’m redirecting it to /dev/null .

You don’t need to check if it returns a string. grep returns a non-zero exit status if there are no matches. There is no need for the test, or the subshell created by $(). if command | grep -q ‘stuff’; then .

This does not work with mount bind and therefore should not be accepted as the answer. This answer should be voted down. You cannot depend on mount | grep . showing you that your mount bind is still active. If the underlying device is unmounted and remounted, the mount bind will actually no longer connect the two files/directories even though mount still shows it’s connected. And if you do umount . it will even tell you it’s not mounted, although mount said it was. HUGE flaw in linux file system.

@Isaac, sorry for the delay in response. I would try using readlink -f , which returns nothing when the path/file doesn’t exist. If the underlying /mount/path/to_file isn’t there (per readlink), the underlying mount is broke (remount the underlying mount and the binding). If the underlying file is there and readlink -f says the binding-version of that file is not there, the binding is broken, just remount the binding.

Читайте также:  Convert linux to window file

If there is a mount called /mnt/md0xxx so the command will indicate /mnt/md0 as mounted while what it does not have to be.

Источник

Управление устройствами хранения данных в Linux

В этой инструкции мы расскажем о том, как смонтировать разделы в Линукс, управлять файловыми системами и устройствами хранения данных.

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

Узнать объем свободного и занятого дискового пространства можно при помощи утилиты df .

По умолчанию результат команды выводится в блоках. Такой вывод не всегда удобен для прочтения. Получить результат в удобном для чтения виде можно с помощью команды:
df -h

Вывод команды df -h в Linux будет выглядеть примерно так:

$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 63G 0 63G 0% /dev
tmpfs 63G 0 63G 0% /dev/shm
tmpfs 63G 3.1M 63G 1% /run
tmpfs 63G 0 63G 0% /sys/fs/cgroup
/dev/mapper/store-root 1.8T 1.3T 339G 80% /
tmpfs 8.0G 226M 7.8G 3% /tmp
/dev/sda1 248M 140M 96M 60% /boot
tmpfs 13G 0 13G 0% /run/user/0

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

Вывод будет выглядеть следующим образом:

$ df -h -x devtpms -x tmpfs
Filesystem Size Used Avail Use% Mounted on
devtmpfs 63G 0 63G 0% /dev
/dev/mapper/store-root 1.8T 1.3T 339G 80% /
/dev/sda1 248M 140M 96M 60% /boot

Как узнать данные о блочных устройствах

Блочное устройство — это устройство хранения данных, записывающее или считывающее данные в блоках определенного размера. К таким устройствам относятся жесткие диски (HDD), твердотельные накопители (SSD), флешки и другие типы энергонезависимой памяти. Проще говоря, это физические устройства, на которых записывается файловая система. А файловая система определяет способ организации и хранения данных на носителе.

Узнать данные о блочных устройствах можно с помощью утилиты lsblk . Она выводит имя, размер и тип устройства, его права доступа, показывает точку монтирования и является ли устройство съемным (столбец RO, 1 — устройство съемное, 0 — устройство несъемное).

Важно! В некоторых системах команда работает только с sudo.

$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 1.8T 0 disk
|-sda1 8:1 0 256M 0 part /boot
|-sda2 8:2 0 8G 0 part [SWAP]
`-sda3 8:3 0 1.8T 0 part
`-store-root 253:0 0 1.8T 0 lvm /

Чтобы узнать файловую систему диска, используйте команду:
lsblk —fs

2$ lsblk —fs
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
|-sda1 ext2 af962028-04a2-4428-8b48-84b2777268fa /boot
|-sda2 swap a0eea781-0154-41a7-ad5f-124d854fc22b [SWAP]
`-sda3 LVM2_memb HvMd3l-VeD4-DUUK-8zwv-XjjG-KbB9-Pb333X
`-store-root ext4 1518de71-11d0-4b5d-b0b5-5a038248a731 /

Если ваша версия lsblk не поддерживает —fs , воспользуйтесь командой:
lsblk -o NAME,FSTYPE,LABEL,UUID,MOUNTPOINT

Узнать топологию диска можно с помощью команды:
lsblk -t

Вывод будет примерно следующим:

Читайте также:  Intel 945 in linux

$ lsblk -t
NAME ALIGNMENT MIN-IO OPT-IO PHY-SEC LOG-SEC ROTA SCHED RQ-SIZE RA WSAME
sda 0 262144 262144 4096 512 1 deadline 128 128 0B
|-sda1 0 262144 262144 4096 512 1 deadline 128 128 0B
|-sda2 0 262144 262144 4096 512 1 deadline 128 128 0B
`-sda3 0 262144 262144 4096 512 1 deadline 128 128 0B
`-store-root 0 262144 262144 4096 512 1 128 128 0B

Существует множество других опций команды lsblk , с помощью которых можно получить данные о дисках и разделах. Например, ключ -O выводит все доступные столбцы, ключ -o задает столбцы, которые следует отобразить.

Чтобы воспользоваться подсказкой, введите команду:
lsblk -h

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

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

Точка монтирования — каталог, в котором будет смонтирована файловая система.

Смонтировать диск в Linux можно при помощи команды mount . Команда umount позволяет демонтировать файловую систему. О текущем состоянии подключенных файловых систем можно узнать, используя команду findmnt .

Команда mount

Синтаксис прост — сначала прописывается команда mount , после указывается что нужно присоединять (в примере /dev/sda1), а потом нужно указать точку монтирования (в примере /mnt):

Командой mount диск монтируется в папку, которая указана как точка монтирования.

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

В этом примере задан тип файловой системы ext3.

Существует множество опций, с помощью которых можно повлиять на монтирование. Вы можете ознакомиться с документацией по использованию утилиты mount , введя команду: man mount

Параметры доступа к примонтированному разделу можно указать с помощью ключа -o . Например, смонтировать раздел со стандартными параметрами можно при помощи команды:

Изменить права доступа и оставить только право на чтение можно командой:

Оставить права на чтение и запись можно командой:

Смонтировать все системы, которые указаны в файле /etc/fstab, можно с помощью команды:

Команда findmnt

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

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

Чтобы отобразить параметры монтирования для конкретного монтирования, используйте команду:
findmnt /mnt
где /mnt — точка монтирования.

С помощью команды findmnt вы узнаете все используемые опции и параметры, а также определите, какие опции наиболее полезны в конкретных случаях монтирования. Вы сможете внести эти опции в файл /etc/fstab.

Команда umount

umount — Linux-команда, которая позволяет демонтировать файловую систему.

В команде нужно указать точку монтирования или устройство файловой системы, которое смонтировано в настоящее время:

где /mnt — точка монтирования.

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

Читайте также:  Linux узнать текущий dns сервер

Источник

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

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

Благодаря такой возможности, вы можете переустановить операционную систему и не потерять пользовательские файлы, обращаться к параметрам ядра с помощью каталогов /proc и /sys, а к блочным устройствам с помощью каталога /dev. В этой статье мы разберемся что такое точки монтирования, а также как посмотреть точки монтирования в Linux.

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

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

Допустим, у вас есть один большой жесткий диск, на который надо записать данные. Это наше поле. Но вам надо файловая система без журналирования для каталога /boot, отдельная файловая система для корня и для /home. Поэтому жесткий диск разбивается на разделы. Дальше эти разделы надо отформатировать в нужную файловую систему. Это аналогия сорта картошки. А монтирование — это аналогия дороги, по которой картошку вывозят с поля. На каком бы разделе диска или части оперативной памяти не располагались данные, получить к ним доступ вы сможете только с помощью корневого каталога /. Все разделы монтируются сюда, если не к самому корню, то в одну из папок. Такая папка и называется точкой монтирования и её содержимое во время монтирования заменяется на содержимое раздела.

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

Для просмотра точек монтирования можно использовать команду mount. Её надо запустить без параметров:

С появлением технологии snap и flatpack, точки монтирования Linux слегка засорены монтированием различных snap пакетов и их содержимого к файловой системе, но всё же здесь можно разобрать и смонтированные жесткие диски. Чтобы отфильтровать только жесткие диски используйте утилиту grep:

Не только посмотреть, но и настроить точки монтирования можно с помощью файла /etc/fstab. Здесь перечислены все разделы диска, которые монтируются к системе.

Более подробно о его настройке я писал в этой статье.

Выводы

Из этой статьи вы узнали что такое точки монтирования Linux, а также как их посмотреть и настроить. А что вы думаете по поводу них? Удобнее ли это чем в Windows? Напишите в комментариях!

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

Оцените статью
Adblock
detector