Команда findfs позволяет задействовать одноименную утилиту, предназначенную для поиска файловых систем. Данная утилита способна искать файловые системы с заданными метками и идентификаторами UUID как на устройствах с таблицами разделов MSDOS, так и на устройствах с таблицами разделов GUID. В случае таблиц разделов MSDOS и для указания искомых меток и идентификаторов UUID используются запросы LABEL и UUID соответственно, а в случае таблиц разделов GUID — запросы PARTLABEL и PARTUUID соответственно.
Базовый синтаксис команды выглядит следующим образом:
$ findfs [параметры] запрос=значение
Утилита не поддерживает каких-либо влияющих на ее работу параметров. Что касается, запросов, то, как уже упоминалось, поддерживаются запросы LABEL, UUID, PARTLABEL и PARTUUID. В случае обнаружения удовлетворяющей запросу файловой системы, утилита выведет имя файла соответствующего ей устройства.
Для начала ознакомимся со списком доступных файловых систем. Для этого воспользуемся утилитой lsblk, а для наглядности выведем список в формате json:
$ lsblk --json -o NAME,LABEL,UUID,PARTLABEL,PARTUUID
{
"blockdevices": [
{
"name": "sda",
"label": null,
"uuid": null,
"partlabel": null,
"partuuid": null,
"children": [
{
"name": "sda1",
"label": null,
"uuid": "253d4cfa-b44a-4329-9033-6000d324665f",
"partlabel": null,
"partuuid": "0d0e39b1-7943-4ce2-8248-2e1a52781918"
},{
"name": "sda2",
"label": null,
"uuid": "cc628458-8f9a-4493-a645-27137cb4e53e",
"partlabel": null,
"partuuid": "2d1b397d-6ce1-470c-9723-5ec264bcc303"
},{
"name": "sda3",
"label": null,
"uuid": "64963cdb-0cc2-4a4b-aeb0-72176a2f37b9",
"partlabel": null,
"partuuid": "f4eb5a86-7750-4b65-b2a2-d46d58ade17a"
}
]
},{
"name": "sdb",
"label": "Archive",
"uuid": "38d919ee-5c81-4366-8d69-75cba480762b",
"partlabel": null,
"partuuid": null
},{
"name": "sr0",
"label": "Ubuntu 22.04.1 LTS amd64",
"uuid": "2022-08-10-16-21-45-00",
"partlabel": null,
"partuuid": null
}
]
}
На первом устройстве (sda) используется таблица разделов GPT. На втором (sdb) — файловая система создана непосредственно на самом устройстве без таблицы разделов. Устройство sr0 — привод для оптических дисков с установочным диском Ubuntu.
Для того, чтобы найти файловую систему по метке, достаточно использовать запрос LABEL (или PARTLABEL, если метка раздела была задана при создании таблицы разделов GPT).
$ findfs "LABEL=Archive"
/dev/sdb
$ findfs "LABEL=Ubuntu 22.04.1 LTS amd64"
/dev/sr0
В первом случае помещение запроса в кавычки не обязательно, во втором — обязательно из-за пробелов в метке. Очевидно, что утилита нашла обе ФС, удовлетворяющие запросу.
Для поиска файловой системы по идентификатору следует использовать запрос UUID или PARTUUID (в случае использования таблицы разделов GPT):
$ findfs UUID=38d919ee-5c81-4366-8d69-75cba480762b
/dev/sdb
$ findfs UUID=2022-08-10-16-21-45-00
/dev/sr0
$ findfs PARTUUID=0d0e39b1-7943-4ce2-8248-2e1a52781918
/dev/sda1
В данном случае также все ФС были успешно обнаружены.