Вопрос или проблема
Я пытаюсь подключить дополнительный жесткий диск.
lsblk
показывает /dev/sdf1..3. Однако sudo fdisk -l
не показывает /dev/sdf1..3
В чем проблема?
Причина в том, что sudo fdisk -l
-l, –list
Из справочной страницы:
Перечисляет таблицы разделов для указанных устройств и затем выходит. Если
устройства не указаны, используются те, что упоминаются в /proc/partitions (если этот файл
существует).
Это означает, что перечислены только те устройства, которые есть в выводе
less /proc/partitions
.
Ответ или решение
Почему fdisk
не показывает жесткий диск (/dev/sdf), в то время как lsblk
это делает?
Когда вы работаете с утилитами для манипулирования жесткими дисками в Linux, может возникнуть ситуация, когда одна утилита отображает ваши устройства, а другая нет. В данном случае вы столкнулись с проблемой, когда команда lsblk
показывает наличие разделов на диске /dev/sdf
, в то время как команда sudo fdisk -l
не отображает этих разделов. Для понимания данной ситуации полезно рассмотреть дополнительные аспекты работы утилит и архитектуры Linux.
1. Специфика утилит fdisk
и lsblk
Команда fdisk
предназначена для работы с таблицами разделов на устройствах. При вызове sudo fdisk -l
программа читает информацию о разделах сначала из /proc/partitions
, который является виртуальным файлом, содержащим список доступных блочных устройств. Однако, стоит отметить, что fdisk
работает напрямую с разделами, которые зарегистрированы в таблице разделов диска, а если у устройства нет корректно настроенной таблицы разделов, как, например, в случае с некоторыми USB-накопителями или дисками, которые еще не инициализированы, могут возникнуть проблемы.
С другой стороны, lsblk
более универсален и представляет собой команду, которая отображает все блочные устройства, доступные в системе, включая те, которые могут не иметь разделов или таблиц разделов. Таким образом, команда lsblk
просто показывает физические устройства, в то время как fdisk
ожидает наличие таблицы разделов для отображения информации.
2. Проверка наличия таблицы разделов
Если fdisk
не показывает ваши дисковые устройства, это может означать, что на разделе /dev/sdf
отсутствует корректно установленная таблица разделов. Чтобы исправить это, вы можете воспользоваться следующими шагами:
-
Проверьте состояние устройства с помощью команды:
sudo fdisk /dev/sdf
Затем вы можете проверить наличие таблицы разделов. Если таблица разделов отсутствует, вы можете создать её с помощью команды
m
для получения справки о доступных командах иg
для создания новой GPT-таблицы (илиo
для MBR). -
Также стоит убедиться, что диск правильно инициализирован. Если вы видите его в
lsblk
, но не вfdisk
, возможно, вам нужно создать таблицу разделов или разделы на нём.
3. Подведение итогов
Таким образом, различия в выходных данных команд lsblk
и fdisk
можно объяснить их различиями в функционале: fdisk
требует готовую таблицу разделов для отображения информации, тогда как lsblk
предоставляет более широкий и гибкий обзор устройств. Если диск /dev/sdf
отображается в lsblk
, но не в fdisk
, рекомендуется проверить проблемы с инициализацией и созданием таблиц разделов.
Следуя данным рекомендациям, вы сможете успешно определить и устранить проблему, а также корректно подготовить ваш новый жесткий диск для использования.