Перечитать таблицу разделов linux

Содержание
  1. 🌜 Как перезагрузить таблицу разделов в Linux без перезагрузки системы?
  2. Как перезагрузить таблицу разделов в Linux с помощью команды partprobe
  3. Как перезагрузить таблицу разделов в Linux с помощью команды blockdev
  4. Как перезагрузить таблицу разделов в Linux с помощью команды hdparm
  5. Как перезагрузить таблицу разделов в Linux с помощью команды partx
  6. Дисковая подсистема Linux
  7. Материал из Xgu.ru
  8. Содержание
  9. [править] Жёсткие диски
  10. [править] Добавление нового диска
  11. [править] Настройка и оптимизация жёсткого диска
  12. [править] Проблемы с размером диска
  13. [править] Перечитать таблицу разделов
  14. [править] Дисковые разделы более 2TB
  15. [править] Файловые системы
  16. [править] Создание файловых систем
  17. [править] Монтирование файловых систем
  18. [править] Работа с файловыми системами
  19. [править] Сброс и очистка кэша
  20. [править] Отключение диска
  21. [править] Надёжное удаление данных
  22. [править] Работа с файлами как с блочными устройствами
  23. [править] Экспорт блочных устройств по сети
  24. [править] RAID-массивы
  25. [править] Системы управления томами
  26. [править] Мониторинг и диагностика
  27. [править] Мониторинг с помощью SMART
  28. Перечитать раздел после расширения без перезагрузки
  29. Перечитать таблицу разделов без перезагрузки?

🌜 Как перезагрузить таблицу разделов в 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.

Читайте также:  Хитрости windows для профессионалов

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Дисковая подсистема Linux

Материал из Xgu.ru

Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.

Содержание

[править] Жёсткие диски

[править] Добавление нового диска

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

Если речь идёт о SATA-дисках, то их можно попробовать подключить без выключения питания.

Или же командой:

[править] Настройка и оптимизация жёсткого диска

[править] Проблемы с размером диска

Диск большого размера может определяться как диск значительно меньшего размера (причём, как в операционной системе, так и в BIOS). Например, диск размером 1TB может быть виден как диск размером 33MB.

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

Проблема, скорее всего, связана с механизмом HPA (Host Protected Area). Проверить это можно выполнив команду:

где /dev/sdc — имя проблемного жёсткого диска.

Результатом выполнения команды должно быть нечто наподобие этого:

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

Эти изменения сохранятся до перезагрузки.

Для того чтобы сделать изменения постоянными, необходимо дать команду:

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

На старых ядрах ( [править] Создание дисковых разделов

[править] Перечитать таблицу разделов

(из пакета parted).

Здесь везде вместо DISK название соответствующего устройства (sda, sdb, sdc).

[править] Дисковые разделы более 2TB

Используйте GPT и parted.

[править] Файловые системы

ОС Linux поддерживает огромное количество разнообразных файловых систем. В каталоге fs/ дерева исходных кодов ядра находится более 60 подкаталогов, каждый из которых соответствует одной файловой системе. Кроме этого, существует интерфейс FUSE, обеспечивающий поддержку ещё большего количества файловых систем, реализованных не в пространстве ядра (kernel level), а в пространстве пользователя (user level).

Традиционно файловые системы разделяют на четыре класса:

  • Локальные файловые системы;
  • Сетевые файловые системы;
  • Кластерные файловые системы;
  • Файловые системы специального назначения.

К основным локальным файловым системам Linux относят:

  • ext2, ext3 и теперь ext4, которая с декабря 2008 года (ядро 2.6.28) считается стабильной;
  • XFS,
  • JFS,
  • Reiserfs и Reiser4.

Ведётся работа над файловой системой btrfs, которая, возможно, войдёт в число основных файловых систем Linux, но пока до этого ещё далеко.

К основным сетевым файловым системам в Linux относят:

  • NFS, основная сетевая файловая система в UNIX (в Linux поддерживается как NFSv3, так и NFSv4);
  • CIFS

Также можно выделить файловую систему AFS, поддержка которой в ядре Linux существенно развилась за последнее время.

Файловые системы отличаются:

  • функциональностью;
  • производительностью;
  • надёжностью;
  • эффективностью хранения данных.

Для улучшения этих и других характеристик в файловых системах используются различные подходы, решения и техники, в том числе:

[править] Создание файловых систем

[править] Монтирование файловых систем

Для того чтобы смонтировать файловую систему UFS2 (FreeBSD) в Linux в режиме read/write, необходимо разрешить это в ядре.

[править] Работа с файловыми системами

[править] Сброс и очистка кэша

Запись несохранённых изменений в кэше на диск:

Очистить кэш страниц (pagecache):

Очистить кэш каталогов и индексных дескрипторов:

Очистить кэш страниц, кэш каталогов и индексных дескрипторов:

Эта возможность появилась начиная с ядра версии 2.6.16.

[править] Отключение диска

[править] Надёжное удаление данных

Очистка первого раздела на первом диске (PATA|SATA), с помощью:

Заполнение псевдослучайными данными:

-b wipe special block device.

-ms use 7-pass Bruce Schneier’s wiping scheme.

-v verbose output.

[править] Работа с файлами как с блочными устройствами

Для того, чтобы создать файловую систему в файле, как в блочном устройстве, достаточно задать его параметром в команде создания ФС.

Создание пустого файла:

Создание в нём ФС:

Монтирование файла с ФС, как блочного устройства:

Аналогичным образом можно монтировать iso-образы дисков и т.д.

[править] Экспорт блочных устройств по сети

[править] RAID-массивы

[править] Системы управления томами

[править] Мониторинг и диагностика

[править] Мониторинг с помощью SMART

Аналогичным образом можно смотреть состояние SCSI-дисков или массивов:

  • cciss,0 — первый физический диск;
  • /dev/cciss/c0d0 — контроллер.

Другие способы узнать о состоянии дисков и массивов Smart Array перечислены здесь [4].

Источник

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

Есть примонтированный по оптике с дискового массива раздел.
На хосте он разбит под 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.)

Похоже, что 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 ) не в состоянии подобным образом , пока основная причина не будет устранена.

Источник

Читайте также:  Knights and merchants mac os
Оцените статью