Вопрос или проблема
Проблема с fdisk.
ОС: linux centos 7
Я использовал fdisk на флеш-накопителе. Он завис, и я не смог его завершить или выйти из него.
Дополнительная проблема заключается в том, что после этого, пытаясь исправить эту проблему, я физически удалил другие флеш-накопители, которые отображались в /dev/. Однако они все еще показываются в /dev/, хотя уже не подключены физически.
Вот lsblk (я удалил из этого списка другие устройства, которые указаны) lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdf 8:80 0 1.8T 0 disk
└─sdf1 8:81 0 1.8T 0 part
sr0 11:0 1 1024M 0 rom
Я сделал следующие выборы, следуя записям, которые я сделал, когда друг форматировал другой флеш-накопитель для меня (той же модели флеш-накопителя). Намерение состоит в том, чтобы отформатировать его в ext4.
Ниже приведен набор выборов (выделен жирным):
[root@linux18 ~]# fdisk /dev/sdf
Добро пожаловать в fdisk (util-linux 2.23.2).
Изменения сохранятся в памяти только до тех пор, пока вы не решите записать их.
Будьте осторожны перед использованием команды записи.
Команда (m для справки): **m**
Действие команды
a переключить флаг загрузки
b редактировать метку диска bsd
c переключить флаг совместимости dos
d удалить раздел
g создать новую пустую таблицу разделов GPT
G создать таблицу разделов IRIX (SGI)
l перечислить известные типы разделов
m распечатать это меню
n добавить новый раздел
o создать новую пустую таблицу разделов DOS
p распечатать таблицу разделов
q выйти без сохранения изменений
s создать новую пустую метку диска Sun
t изменить системный идентификатор раздела
u изменить единицы отображения/ввода
v проверить таблицу разделов
w записать таблицу на диск и выйти
x дополнительная функциональность (только для экспертов)
Команда (m для справки): **d**
Выбранный раздел 1
Раздел 1 удален
Команда (m для справки): **n**
Тип раздела:
p основной (0 основной, 0 расширенный, 4 свободно)
e расширенный
Выберите (по умолчанию p): p
Номер раздела (1-4, по умолчанию 1):
Первый сектор (2048-3906963455, по умолчанию 2048):
Используется значение по умолчанию 2048
Последний сектор, +сектора или +размер{K,M,G} (2048-3906963455, по умолчанию 3906963455):
Используется значение по умолчанию 3906963455
Раздел 1 типа Linux и размером 1.8 TiB установлен
Команда (m для справки): **t**
Выбранный раздел 1
Шестнадцатеричный код (введите L для перечисления всех кодов): 83
Тип раздела 'Linux' изменен на 'Linux'
Команда (m для справки): **w**
Таблица разделов была изменена!
Здесь я попробовал и Control C, и Control Z:
^[[B^[[B^[[B
^[[6~
^C^[[5~
Это похоже на проблему, с которой вы столкнулись: https://access.redhat.com/solutions/369623
Попробуйте # dmsetup remove
с некоторыми флагами из руководства (--force --deferred --retry
)
Мне нужно было принудительно перезапустить сканирование дисков, подключенных к системе, как объясняется здесь, например:
echo "- - -" >> /sys/class/scsi_host/host_0/scan
Ответ или решение
Когда вы сталкиваетесь с проблемой, когда утилита fdisk
не завершает свою работу и "виснет" на USB-накопителе, это может вызвать множество сложностей при дальнейшем использовании устройства. В данном ответе мы рассмотрим возможные причины данной ситуации и предоставим рекомендации по её устранению для вашей системы CentOS 7.
Возможные причины проблемы:
-
Системные блокировки или зависания:
fdisk
может зависнуть из-за проблем с самим USB-накопителем, таких как недостаток питания, повреждение устройства или конфликты в системе. -
Некорректное завершение работы
fdisk
: Если вы попытались принудительно прерватьfdisk
с помощьюCtrl+C
илиCtrl+Z
, это могло оставить некоторые ресурсы заблокированными. -
Проблема с устройством: Устройство могло быть неправильно отформатировано или повреждено, что вызывает сложности при его определении системой.
Рекомендации по решению проблемы:
-
Проверка состояния устройства:
- Подключите USB-накопитель к другому компьютеру. Убедитесь, что он корректно определяется и доступен для работы.
- Если устройство не определяется на другом компьютере, возможно, оно повреждено.
-
Перезагрузка системы:
- Иногда самый простой способ решить проблему – это перезагрузить систему. Это может освободить зафиксированные блокировки и освежать определения устройств.
-
Принудительное удаление зависших процессов:
- Используйте команду
ps aux | grep fdisk
для нахождения процессаfdisk
и его PID. - Убедитесь, что данный процесс действительно завис, затем завершите его с помощью команды
kill -9 <PID>
.
- Используйте команду
-
Обновление таблицы устройств:
- Если после отключения USB-накопителей они все еще отображаются в
/dev/
, выполните команду:echo "- - -" > /sys/class/scsi_host/host0/scan
- Это инициирует повторное сканирование дисков, и система может обновить список доступных устройств.
- Если после отключения USB-накопителей они все еще отображаются в
-
Использование
dmsetup
:- Если проблема продолжается и имеются зафиксированные устройства, попробуйте применить команду
dmsetup
с соответствующими флагами:dmsetup remove --force --deferred <deviceName>
- Замените
<deviceName>
на имя зависшего устройства. Это может помочь избавиться от проблемных записей.
- Если проблема продолжается и имеются зафиксированные устройства, попробуйте применить команду
-
Форматирование устройства:
- После перезагрузки и очистки выполните
fdisk
заново на USB-накопителе, чтобы создать новую таблицу разделов:fdisk /dev/sdf
- Следуйте инструкциям для создания нового раздела и форматирования его в
ext4
:mkfs.ext4 /dev/sdf1
- После перезагрузки и очистки выполните
Заключение
Использование fdisk
может быть рискованным занятием, и если возникают неполадки, важно принимать меры для минимизации дальнейших повреждений. Всегда проверяйте состояние устройств и будьте внимательны при их подключении или отключении. Если описанные выше шаги не помогли, возможно, стоит обратиться в техническую поддержку или к специалистам по восстановлению данных.