Альт линукс невозможно перечитать таблицу разделов

🌜 Как перезагрузить таблицу разделов в Linux без перезагрузки системы?

Как администратор Linux, вы можете выполнять задачу разделения диска несколько раз в день.

В большинстве случаев таблица разделов успешно изменялась после разделения диска в виртуальных средах (таких как VMWare, Virtualbox и т. д.).

Но это не происходит на физических серверах, тогда какое решение сообщить ОС об изменениях таблицы разделов?

Тем не менее, мы не можем давать вам гарантию, что оно будет работать на 100%, но оно будет работать в большинстве случаев.

Я могу сказать другими словами. Это будет работать на 99% согласно моему опыту и знаниям.

Эти методы заставляют ядро перезагружать таблицу разделов и повторно заполнять ее идентификаторы в /dev.

Если вы ищете утилиты для разделов диска, вы можете попробовать одну из них.

Утилиты дискового разделения – это fdisk и parted.

Если вы хотите прочитать соответствующие статьи о разделах диска, вы можете перейти к следующим статьям.

Вы можете получить вывод, подобный приведенному ниже, в большинстве случаев в виртуальной среде, когда вы выполняете разделение диска.

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

Я протестировал приведенные ниже команды в системе Arch Linux, и они работали нормально, кроме команды partx.

Потому что я не вижу никаких логов журнале dmesg после запуска команды partx.

Однако он работал нормально, как и ожидалось в системах RHEL 7.

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

Это можно сделать с помощью следующих четырех методов.

  • partprobe: partprobe – это программа, которая информирует ядро операционной системы об изменениях таблицы разделов, запрашивая у операционной системы перечитывание таблицы разделов.
  • blockdev: Утилита blockdev позволяет вызывать ioctl для блочных устройств из командной строки.
  • hdparm: hdparm предоставляет интерфейс командной строки для различных интерфейсов ядра, поддерживаемых подсистемой «libata» Linux SATA / PATA / SAS и более старой подсистемой драйверов IDE.
  • partx: partx сообщает ядру о наличии и нумерации разделов на диске.

Как перезагрузить таблицу разделов в Linux с помощью команды partprobe

partprobe – это программа, которая информирует ядро операционной системы об изменениях таблицы разделов, запрашивая у системы, чтобы она перечитала таблицу разделов.

Это стандартная и нативная команда для выполнения этой задачи.

В этом примере я собираюсь использовать /dev/sdb. Помните, что вам нужно ввести имя вашего устройства вместо нашего.

dmesg используется для проверки или управления кольцевым буфером ядра.

Итак, используйте следующую команду, чтобы увидеть изменения в ядре.

Да, я вижу изменения, потому что в dmesg есть новый лог для устройства SDB.

Как перезагрузить таблицу разделов в Linux с помощью команды blockdev

Утилита blockdev позволяет вызывать ioctl блочных устройств из командной строки.

Мы можем использовать команду blockdev для выполнения этой задачи.

Используйте следующую команду dmesg, чтобы увидеть изменения в ядре.

Да, я вижу изменения, потому что в dmesg снова появился новый лог для устройства sdb.

Как перезагрузить таблицу разделов в Linux с помощью команды hdparm

hdparm предоставляет интерфейс командной строки для различных интерфейсов ядра, поддерживаемых подсистемой «libata» Linux SATA / PATA / SAS и более старой подсистемой драйверов IDE.

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

Используйте следующую команду dmesg, чтобы увидеть изменения в ядре.

Да, я вижу изменения, потому что в dmesg снова появился новый лог для устройства sdb.

Читайте также:  Регистрация linux dns windows

Как перезагрузить таблицу разделов в Linux с помощью команды partx

partx сообщает ядру о наличии и нумерации разделов на диске.

Команда partx является частью пакета util-linux и доступна из архива ядра Linux.

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

Вы можете дважды подтвердить это, выполнив следующую команду.

Если таблица разделов успешно перезагружена и видна ядру, вы можете увидеть эти новые разделы в этом месте.

Эту же информацию можно найти с помощью следующей команды ls.

Эту же информацию можно найти с помощью следующей команды partx.

Источник

Что-то не так с таблицей разделов, как это исправить?

Я подозреваю, что если создать нужные разделы заранее, убунту всё же можно уговорить на них ставиться.
Правда, есть другая проблема – груб будет ставиться только в MBR, уже и так занятую тем грубом, который в Арч. Выхода два – или загружать убунту через груб от Арч, или загружать АРч через груб от убунты.

malody
четвёртый — ext4 Домашний раздел
пятый — ext4 Дата 🙂 (фильмы там всякие и прочее).

проблема решаема как бы обидно не было с помощью проприетарщины
чтобы gparted увидел разделы нужно изменить любой раздел с помощью acronis, тем самым перепишется таблица разделов и все будет ок

сам столкнулся с этой проблемой еще 6 лет назад

Нашёл 3 пути решения проблемы.
1. Удалить dmraid и libdmraid — не помогло (по крайней мере мне, т.к. запускался с установочной флешки, и система ругалась что диск только для чтения. Кто в установленной системе будет это проделывать, пакеты конечно удалятся, и возможно поможет)
2. http://forum.ubuntu.ru/index.php?topic=130373.45 — совет воспользоватся fixparts не помог (вдруг кому поможет).
3. Acronis Disk Director Home — спасибо stmc! — помогло. Gparted видит разделы, установщик Mint тоже.
Что я делал: удалил раздел который предназначался для Mint. Не помогло. Потом сделал раздел на месте удалённого (вместо основного получился логический), тоже не помогло. Удалил этот раздел вновь. И ура! gparted Правильно, я же так и сказал – parted/gparted – довольно глючный и кривой комбайн, потому что нормальные инструменты видели вашу таблицу разделов и так. Вообщем то дело не в parted/gparted , а в том, как он готовил диск. Обратите внимание — общее количество секторов 488397168, а расширенный раздел sda4 заканчивается 488408129 сектором, т.е. выходит за пределы диска, parted/gparted это не переносят — при правильном их использовании они вообщем то не глючат.
PS. Поэтому и testdisk ругается (на несоответствие геометрии диска) Конечно, fdisk/cfdisk последнее время тоже демонстрируют неадекватность, зачастую не позволяя пересоздать с прежним начальным сектором раздел, созданный их же предыдущей версией с меньшим отступом по-умолчанию, чем позволяет нынешняя версия, но они, в конце концов, теоретически не рассчитаны на изменение размеров раздела и не позиционируются как универсальное средство для всего.

А комбайн parted, который по идее и должен быть таким средством, на деле ведёт себя ещё хуже, и вместо коррекции разделов тупо отказывается работать, не давая даже вменяемой диагностики проблемы, не говоря уже о возможности её устранить.

Главное непонятно — почему некоторые виндовые утилиты по работе с диском позволяют себе нелепости выхода за пределы диска.
Но отрадно одно — они же спокойно позволяют и читать такие таблицы разделов. В то время как линуксовые parted/gparted отказываются, но зато они и не позволяют создавать такие ошибочные таблицы разделов.
Поэтому я сделал для себя вывод
— если на диске только линукс — применяй утилиты линукса
— если винда — то и утилиты только винды
— если винда и линукс — то готовить диск (разбивка на разделы) целесообразно утилитами винды, форматировать разделы целесообразнее при установке системы ее же родными утилитами.
— и конечно, проверять границы разделов.

vasek
Обратите внимание — общее количество секторов 488397168, а расширенный раздел sda4 заканчивается 488408129 сектором, т.е. выходит за пределы диска

Хорошо. Вернёмся немного назад. Допустим у меня по прежнему parted не видит диск, из-за того что расширенный раздел выходит за его пределы. Как это можно исправить? Вариант один — удалить раздел и создать его как надо?

vasek
Главное непонятно — почему некоторые виндовые утилиты по работе с диском позволяют себе нелепости выхода за пределы диска.
Но отрадно одно — они же спокойно позволяют и читать такие таблицы разделов. В то время как линуксовые parted/gparted отказываются

vasek
почему некоторые виндовые утилиты по работе с диском позволяют себе нелепости выхода за пределы диска.

vasek
Поэтому я сделал для себя вывод
.
— если винда и линукс — то готовить диск (разбивка на разделы) целесообразно утилитами винды, форматировать разделы целесообразнее при установке системы ее же родными утилитами.
— и конечно, проверять границы разделов.

Источник

Читайте также:  Mysql windows с чего начать

Перечитать раздел после расширения без перезагрузки

Есть примонтированный по оптике с дискового массива раздел.
На хосте он разбит под LVM и отформатирован в ext3.
Возникла нужда увеличить соответствующий LUN на массиве.
Вопрос следующий: можно ли сделать так, чтобы хост увидел увеличение раздела без перезагрузки?

blockdev —rereadpt /dev/sd*

Только если на нём нет запущенного корня

В общем случае: может быть

Есть примонтированный по оптике с дискового массива раздел.

fc адаптер может ресканить шину? Если да, рескан шины и рескан диска

echo — — — > /sys/clas/scsi_host/ /scan

echo 1 > /sys/block/ /device/rescan

На хосте он разбит под LVM и отформатирован в ext3.

physical volume может быть расширен на лету

ext3 в достаточно новых ядрах может быть расширен на лету через resize2fs

Но если PV создан на РАЗДЕЛЕ (primary volume / extended volume) — только перезагрузка.

или, по крайней мере, деактивация VG

Спасибо, корня там нет. Несколько смущает расхождение во мнениях с router

А ты проверь, может я ошибаюсь. для обычных разделов работает, для LVM хз 🙂

Для обычных разделов? С какого ядра?

У меня если на блочном устройстве есть раздел ( primary volume ) с смонтированной ФС либо LVM PV, rereadpt никак не повлияет на этот раздел. Т.е. ты сможет создать новый раздел на добавленном дисковом пространстве, но не расширить существующий.

По крайней мере, в rhel до 5 (на 6-й ещё не было случая проверить) включительно и в дебиан до stable включительно

>fc адаптер может ресканить шину?
Как это узнать?

Из документации или у старших товарищей. ИМХО, в твоём случае гораздо проще создать новый диск, добавить в VG и расширить ФС.

fc адаптер может ресканить шину?

zolden>Как это узнать?

rescan for fiber (lpfc driver)
echo «1» > /sys/class/fc_host/host#/issue_lip
echo «- — -» > /sys/class/scsi_host/host#/scan

>rescan for fiber (lpfc driver)

добавлю для qlogic:

# ресканим 1-й девайс
echo «scsi-qlascan» > /proc/scsi/qla2xxx/1
# смотрим, что у нас есть
cat /proc/scsi/qla2xxx/1
# добавляем 8-й lun через 1-й девайс
echo «scsi add-single-device 1 0 0 8» > /proc/scsi/scsi

Источник

Перечитать таблицу разделов без перезагрузки?

Иногда, изменяя размер или иным образом копаясь в разделах на диске, cfdisk скажет:

Wrote partition table, but re-read table failed. Reboot to update table.

(Это также происходит с другими инструментами разбиения, поэтому я думаю, что это проблема Linux, а не проблема cfdisk.) Почему это происходит, и почему это происходит только иногда , и что я могу сделать, чтобы избежать этого?

Примечание: Пожалуйста, предположите, что ни один из разделов, которые я редактирую, не открыт, не смонтирован и не используется иным образом.

cfdisk использует ioctl(fd, BLKRRPART, NULL) Linux для перечитывания таблицы разделов. Два других рекомендованных инструмента ( hdparm -z DEVICE , sfdisk -R DEVICE ) делают то же самое. Команда partprobe DEVICE , с другой стороны, похоже, использует новый ioctl под названием BLKPG, который может быть лучше; Я не знаю. (Он также возвращается к BLKRRPART в случае сбоя BLKPG.)

Читайте также:  Grep windows что это

Похоже, что BLKPG — это операция «этот раздел изменился; вот новый размер», и она выглядела так, как будто partprobe она вызывалась индивидуально на всех переданных разделах устройства, поэтому она должна работать, если отдельные разделы не используются. Однако у меня не было возможности попробовать это.

ИМХО самый надежный / лучший ответ

Перечитывание информации таблицы разделов не всегда работает, но попробуйте

Если это работает, значения в / proc / partitions изменятся.

На Centos7:

Ты должен попытаться :

Это сработало для меня.

Примечание: Пожалуйста, предположите, что ни один из разделов, которые я редактирую, не открыт, не смонтирован и не используется иным образом.

Учитывая это предположение, таблица разделов может быть успешно повторно проверена, и проблема не возникнет. Если вы получаете эту ошибку, это потому, что таблица разделов в настоящее время используется, и, следовательно, не может быть повторно проверена без создания несоответствий.

Он не основан на разделе, который вы редактируете.

Предположим, у вас есть только один жесткий диск ( /dev/sda ) и два раздела ( /dev/sda1 , /dev/sda2 ), и вы смонтировали только один раздел ( /dev/sda1 ). Если вы удалите или измените что-либо в другом разделе, который даже не смонтирован ( /dev/sda2 ), вы получите ошибку, что перечитывание таблицы разделов не удалось и ядро ​​будет использовать старую таблицу.

Но если у вас есть два жестких диска ( /dev/sda , /dev/sdb ) и ни один из разделов ( /dev/sdb ) не используется. Затем вы можете добавлять / удалять / изменять размер / редактировать разделы, /dev/sdb и они будут перечитаны без каких-либо проблем. Но даже если один раздел / dev / sdb был смонтирован во время изменения. Тогда ядро ​​продолжит использовать старую таблицу.

У меня (первоначального опрашивающего) была ситуация несколько дней назад, когда ни один из других ответов (включая partprobe /dev/sdX принятый и получивший наибольшее количество голосов) не работал. Что сделали работу, однако, это:

(Я не знаю, почему это сработало, а другие нет, но я рад, что это сработало, поскольку это спасло меня от перезагрузки на занятом сервере.)

Я нахожусь на Centos 6,5 х64; ядро 2.6.32. и я проверяю трюк fdisk, чтобы изменить размер.

Все следующие команды не делали ядро ​​перечитанным разделом:

  • partprobe / dev / sda (предупреждение: ядру не удалось перечитать . )
  • hdparm -z / dev / sda (сбой BLKRRPART: устройство или ресурс заняты)
  • blockdev -rereadpt / dev / sda (сбой BLKRRPART: устройство или ресурс занят)
  • sfdisk -R / dev / sda (сбой BLKRRPART: устройство или ресурс заняты)

мне все еще нужна перезагрузка, чтобы она заработала

При всех несмонтированных точках монтирования работает Yocto 2.4:

Не удалось перезагрузить таблицу разделов после удаления разделов на устройстве. Также попробовал — и не удалось:

Все сообщали об аналогичных ошибках «Ошибка BLKRRPART: устройство или ресурс занят . », указывающие на перезагрузку. Возможно, этот сбой ранее использовавшихся методов связан с тем, что udev теперь находится под контролем systemd? Размышляя в том же духе, я попытался:

И вдруг мой диск снова доступен, без перезагрузки!

Когда команда вроде blockdev —rereadpt /dev/sdX не работает с

это обычно означает, что какой-то (старый) раздел действительно все еще каким-то образом используется ядром.

Возможные причины / исправления:

  1. раздел sdX — скажем sdX1 — все еще подключен — проверьте mount и размонтируйте его
  2. /dev/sdX1 является частью программного рейда — проверьте cat /proc/mdstat и, возможно, остановите соответствующие массивы, например mdadm —stop /dev/md126
  3. /dev/sdX1 является частью физического тома LVM — проверьте с помощью pvdisplay / vgdisplay и, возможно, деактивируйте с помощью vgchange
  4. /dev/sdX1 является частью некоторого отображения устройства — например , с помощью cryptsetup — проверить /dev/mapper и , lsblk и , возможно , удалить отображение (например cryptsetup luksClose )
  5. Соревнование с некоторой проверкой udev — проверьте запущенные процессы ps и, возможно, уничтожьте

Если один инструмент — сказать blockdev —rereadpt не может, как правило , подобные из них , как ( partx -uv , kpartx , partprobe , kpartprobe ) не в состоянии подобным образом , пока основная причина не будет устранена.

Источник

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