- 🌜 Как перезагрузить таблицу разделов в Linux без перезагрузки системы?
- Как перезагрузить таблицу разделов в Linux с помощью команды partprobe
- Как перезагрузить таблицу разделов в Linux с помощью команды blockdev
- Как перезагрузить таблицу разделов в Linux с помощью команды hdparm
- Как перезагрузить таблицу разделов в Linux с помощью команды partx
- Как быстро увеличить размер раздела диска на сервере
- Описание задачи
- How to Reload partition table without Reboot in Linux
- 1) Reloading partition table in Linux with partprobe command
- 2) How to reload partition table without system reboot in Linux using blockdev command
- 3) Reloading partition table in Linux using hdparm command
- 4) Reload Partition table without reboot in Linux using partx command
- Closing Notes
- Администрирование систем Linux. Разделы жестких дисков
- Глава 5. Разделы жестких дисков
- 5.1. Информация о разделах жестких дисков
- 5.2. Обнаружение разделов жестких дисков
- 5.3. Создание разделов на новых дисках
- 5.4. О таблице разделов
- 5.5. Практическое задание: разделы жестких дисков
- 5.6. Корректная процедура выполнения практического задания: разделы жестких дисков
🌜 Как перезагрузить таблицу разделов в 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 с помощью команды partx
partx сообщает ядру о наличии и нумерации разделов на диске.
Команда partx является частью пакета util-linux и доступна из архива ядра Linux.
В качестве альтернативы, мы можем использовать команду partx для выполнения этой задачи.
Вы можете дважды подтвердить это, выполнив следующую команду.
Если таблица разделов успешно перезагружена и видна ядру, вы можете увидеть эти новые разделы в этом месте.
Эту же информацию можно найти с помощью следующей команды ls.
Эту же информацию можно найти с помощью следующей команды partx.
Источник
Как быстро увеличить размер раздела диска на сервере
Всем привет! Недавно столкнулся с простой на первый взгляд задачей — увеличить «на горячую» размер диска на сервере Linux.
Описание задачи
Есть сервер в облаке. В моем случае, это Google Cloud — Compute Engine. Операционная система — Ubuntu, файловая система ext4 (подойдет для всех ext). Сейчас подключен диск размером 30 Гб. База растет, файлы пухнут, поэтому нужно увеличить размер диска, допустим, до 50 Гб. При этом мы ничего не отключаем, ничего не перезагружаем.
Внимание! Перед тем как начать, делаем бекап всей важной информации!
1. Для начала, проверим, сколько у нас всего свободного пространства. В консоли Linux пишем:
Простыми словами, у меня 30 Гб всего и 7.9 Гб сейчас свободно. Нужно увеличить.
2. Дальше я иду и через консоль своего хостера подключаю еще немного Гб. В Google Cloud это делается легко, без перезагрузки. Захожу в Compute Engine -> Диски -> Выбираю диск своего сервера — ему и поменяем размер:
Захожу внутрь, нажимаю «Редактировать» и увеличиваю размер диска до нужных мне размеров (в моем случае, до 50 Гб).
3. Итак, теперь у нас 50 Гб. Проверим это на сервере командой:
Видим свои новые 50 Гб, но пока использовать мы можем только 30 Гб.
4. Теперь удалим текущий раздел диска на 30 Гб, создадим новый на 50 Гб. У вас может быть несколько разделов. Возможно, вам нужно будет создать и несколько новых разделов. Для этой операции будем использовать программу fdisk, которая позволяет управлять разделами жесткого диска. Также важно понимать, что такое разделы диска и для чего они нужны — читаем тут. Для запуска программы fdisk используем команду:
5. Внутри интерактивного режима программы fdisk выполняем несколько операций.
Команда выводит список наших текущих разделов. В моем случае один раздел на 30 Гб и еще 20 Гб в свободном плавании, если так можно сказать.
6. Затем вбиваем:
Удаляем текущий раздел для того, чтобы создать новый на все 50 Гб. Перед операцией еще раз проверяем, сделали ли мы бекап важной информации!
7. Далее указываем программе:
Команда создает новый раздел. Все параметры стоит устанавливать по умолчанию — можно просто нажимать Enter. Если же у вас какой-то особый случай, то указываете свои параметры. Как видно из скриншота, я создал раздел на 50 Гб — то, что мне нужно.
8. В итоге указываю программе:
Эта команда записывает изменения и выходит из fdisk. Не пугаемся, что чтение таблицы разделов не удалось. Следующая команда поможет это исправить. Осталось совсем чуть-чуть.
9. Мы вышли из fdisk и вернулись в основную Linux — строку. Далее вбиваем, как нам посоветовали ранее:
Если все прошло успешно, то вы не увидите никакого сообщения. Если у вас не установлена программа partprobe, то установите ее. Именно partprobe обновит таблицы разделов, что позволит нам расширить раздел до 50 Гб в режиме онлайн. Идем дальше.
Подсказка! Установить partprobe можно вот так:
10. Теперь осталось переопределить размер раздела с помощью программы resize2fs. Она сделает это в режиме онлайн — у меня даже в этот момент скрипты работали и писали на диск.
Программа resize2fs перезапишет метаданные файловой системы. Для этого используем следующую команду:
Здесь sda1 — это имя вашего раздела. В большинстве случаев, это sda1, но возможны и исключения. Будьте внимательны. В итоге программа изменила нам размер раздела. Думаю, что это успех.
11. Теперь давайте убедимся, что размер раздела изменился и теперь у нас 50 Гб. Для это повторим самую первую команду:
Источник
How to Reload partition table without Reboot in Linux
As a Linux administrator you might perform a disk partition task quite often. Most of the time the partition table will be altered successfully after the disk partition in the virtual environments (such as VMWare, Virtualbox, etc).
But things do not go as planned every time, because sometimes your system doesn’t alter the partition table with new disk information, which often happens in physical systems. If so, what is the solution to inform the OS about partition table changes?
There is a solution to this. However, we can not guarantee that it will work 100%, but it will work most of the time as per my experience and knowledge.
These commands are to: 1) force the Kernel to reload the partition table and 2)re-populate its ids in /dev.
In Linux, disk partitioning can be done using multiple commands and most users prefer to use fdisk or parted. Please choose the desired command based on your need.
Visit to the following URLs to learn more about disk partitions:
Most of the time you can get the output below in virtual environment when you are performing the disk partitions:
At the same time when you make disk partitions, you may get the below output in the physical environment:
I have tested the below four commands on Arch Linux system and all are working fine except ‘partx’ command, because I didn’t find any information about the partition change in the ‘dmesg’ log after running the partx command.
However, the partx command works as expected on RHEL 7 systems.
I would suggest you to run any of the below commands after adding a partition in Linux system to inform the OS about the partition table changes.
In this guide, we’ll show you how to re-load partition table without reboot in Linux using the following four commands:
- partprobe: partprobe is a program that informs the operating system kernel of partition table changes, by requesting that the operating system re-read the partition table.
- blockdev: The utility blockdev allows to call block device ioctls from the command line.
- hdparm: hdparm provides a command line interface to various kernel interfaces supported by the Linux SATA/PATA/SAS “libata” subsystem and the older IDE driver subsystem.
- partx: partx is telling the kernel about presence and numbering of on-disk partitions.
1) Reloading partition table in Linux with partprobe command
partprobe is a program that informs the operating system kernel of partition table changes, by requesting the operating system to re-read the partition table. For instance, if you create a new partition on one of your disks using parted command, you should run partprobe afterwards to make the kernel aware of the new partition configuration.
This is standard and native command to perform this task.
In this example, we will use /dev/sdb to demonstrate this. Please make sure to input your device name instead of ours in the command below:
dmesg is used to examine or control the kernel ring buffer. So, use the following command to see the kernel changes. And indeed, i can saw the changes in my test run, because there is a new log for ‘sdb’ device in the dmesg.
2) How to reload partition table without system reboot in Linux using blockdev command
The utility blockdev allows us to call block device ioctls from the command line.
We can use the blockdev command to perform this task as shown below:
Use the following dmesg command to see the kernel changes.
And I was able to see the changes in my test run, because there is a new log again for ‘sdb’ device in the dmesg.
3) Reloading partition table in Linux using hdparm command
hdparm provides a command line interface to various kernel interfaces supported by the Linux SATA/PATA/SAS “libata” subsystem and the older IDE driver subsystem.
Alternatively, we can use hdparm command to perform this task as shown below:
Use the following dmesg command to see the kernel changes:
And, I could see the changes in my test run, because there is a new log again for ‘sdb’ device in the dmesg.
4) Reload Partition table without reboot in Linux using partx command
partx is telling the kernel about the presence as well as the numbering of on-disk partitions.
The partx command is part of the util-linux package and is available from Linux Kernel Archive.
As an alternate, we can use partx command to perform this task as shown below:
You can confirm this by running the following command. If the partition table is successfully reloaded and it’s visible to the kernel, then you should be able to see those new partitions in this location.
The same information can be found using the following ls command:
And the same information can also be found using the following partx command:
Closing Notes
In this guide, we have shown you four commands to reload partition table without system Reboot in Linux.
If you have any questions or feedback, feel free to comment below. Happy learning!
Источник
Администрирование систем Linux. Разделы жестких дисков
Оригинал: Disk partitions
Автор: Paul Cobbaut
Дата публикации: 12 марта 2015 г.
Перевод: A. Панин
Дата перевода: 29 марта 2015 г.
Глава 5. Разделы жестких дисков
В данной главе будет продолжено рассмотрение приемов работы с жесткими дисками , которые были подготовлены нами в предыдущей главе. На этот раз мы займемся созданием разделов на этих жестких дисках.
Прочитав данную главу, вы будете подготовлены к чтению следующей главы, в которой будет описываться процесс создания файловых систем в подготовленных разделах.
5.1. Информация о разделах жестких дисков
5.1.1. Первичные, расширенные и логические разделы
Для корректного функционирования дистрибутива Linux вам потребуется создать один или несколько разделов (partitions) на жестком диске. Далее будут приведены подробные пояснения относительно создания и использования разделов жестких дисков.
Геометрия раздела (geometry), а также его размер обычно описываются с помощью номеров начального и конечного цилиндра (а иногда начального и конечного сектора). Разделы могут быть первичными (primary, максимум четыре), расширенными (extended, максимум один) или логическими (logical, размещаются внутри расширенного раздела). Каждый раздел имеет поле типа, которое содержит соответствующий код. Данный код позволяет идентифицировать операционную систему компьютера или файловую систему раздела.
Таблица 5.1. Первичные, расширенные и логические разделы
Тип раздела | Порядковый номер |
---|---|
Первичный (максимум 4) | 1-4 |
Расширенный (максимум 1) | 1-4 |
Логический | 5- |
5.1.2. Имена файлов устройств, соответствующих разделам
Ранее мы говорили о том, что имена файлов устройств жестких дисков соответствуют шаблону /dev/hdx или /dev/sdx, причем x является буквенным символом, зависящим от аппаратной конфигурации. После этого символа должен следовать порядковый номер раздела, причем отсчет должен начинаться с числа 1. Следовательно, для обозначения четырех (возможных) первичных разделов могут использоваться числа от 1 до 4. Отсчет порядковых номеров логических разделов всегда начинается с 5. Таким образом, файл устройства /dev/hda2 представляет второй раздел на первом жестком диске с интерфейсом ATA, а файл /dev/hdb5 — первый логический раздел на втором жестком диске с интерфейсом ATA. Аналогичным образом происходит и присваивание имен и файлам устройств, соответствующих жестким дискам с интерфейсом SCSI. Например, файл устройства /dev/sdb3 соответствует третьему разделу второго жесткого диска с интерфейсом SCSI.
Таблица 5.2. Имена файлов устройств, соответствующих разделам
Раздел | Устройство |
---|---|
/dev/hda1 | Первый первичный раздел на устройстве, представленном файлом /dev/hda |
/dev/hda2 | Второй первичный раздел или расширенный раздел на устройстве, представленном файлом /dev/hda |
/dev/sda5 | Первый логический раздел на устройстве, представленном файлом /dev/sda |
/dev/sdb6 | Второй логический раздел на устройстве, представленном файлом /dev/sdb |
На рисунке ниже представлены схематичные изображения двух жестких дисков (с вращающимися шпинделями) с разделами. Обратите внимание на то, что расширенный раздел выступает в роли контейнера, содержащего логические разделы.
5.2. Обнаружение разделов жестких дисков
5.2.1. Команда fdisk -l
Рассмотрев приведенный в примере ниже вывод команды fdisk -l , вы можете обнаружить, что на жестком диске, представленном файлом устройства /dev/sdb , существуют два раздела. Первый раздел размещается до 31 цилиндра и является разделом подкачки Linux. Второй раздел имеет гораздо больший размер.
5.2.2. Файл /proc/partitions
Файл /proc/partitions содержит таблицу с основными и дополнительными номерами файлов устройств, соответствующих разделам жестких дисков, количеством блоков в рамках этих разделов и именами файлов устройств, расположенных в директории /dev . Изучив содержимое файла /proc/devices , убедитесь в том, что в данном списке содержатся основные номера, соответствующие типу каждого из устройств.
Основной номер устройства соответствует типу устройства (или драйверу) и может быть обнаружен в файле /proc/devices . В данном случае основной номер устройства 3 соответствует устройству с интерфейсом IDE , а 8 — устройству с интерфейсом SATA . Основной номер устройства описывает драйвер , который должен использоваться для взаимодействия с данным устройством.
Дополнительный номер устройства является уникальным идентификатором экземпляра устройства данного типа. Файл devices.txt в дереве исходного кода ядра Linux содержит полный список основных и дополнительных номеров устройств.
5.2.3. Parted и другие утилиты
Вас могут заинтересовать такие альтернативные утилите fdisk инструменты, как parted , cfdisk , sfdisk и gparted . При этом для осуществления манипуляций с разделами жестких дисков в рамках данного курса будет использоваться главным образом утилита fdisk .
Утилита parted рекомендуется разработчиками некоторых дистрибутивов Linux для работы с дисками, содержащими таблицы разделов формата GPT , а не MBR .
Ниже приведен пример использования утилиты parted при работе с дистрибутивом CentOS.
5.3. Создание разделов на новых дисках
В примере ниже будет рассматриваться ситуация покупки нового жесткого диска для нашей системы. После корректного подключения нового аппаратного обеспечения вы можете использовать утилиты fdisk и parted для создания необходимых разделов. В данном примере используется утилита fdisk , но утилита parted в подобной ситуации также является вполне подходящим инструментом.
5.3.1. Обнаружение жесткого диска
В первую очередь мы должны удостовериться в том, что ядро Linux имеет доступ к новому жесткому диску с помощью команды fdisk -l . Да, новый жесткий диск представлен файлом устройства /dev/sdb, но на нем пока не создано каких-либо разделов.
5.3.2. Открытие дискового устройства с помощью утилиты fdisk
После этого мы можем приступить к созданию раздела на жестком диске, представленном файлом устройства /dev/sdb, с помощью утилиты fdisk. Для начала мы должны передать путь к файлу устройства /devsdb в качестве параметра утилиты fdisk. Следует проявить крайнюю осторожность и убедиться еще раз в том, что вы создаете раздел именно на новом диске!!
5.3.3. Пустая таблица разделов
Работая с инструментом fdisk, вы можете выполнить команду p для того, чтобы ознакомиться с текущей таблицей разделов диска.
5.3.4. Создание нового раздела
На данный момент на диске не существует разделов, поэтому мы должны выполнить команду n для создания нового раздела. Мы будем вводить символ p для создания первичного раздела и число 1 в качестве номера раздела, а также число 1 в качестве номера начального цилиндра и число 14 в качестве номера конечного цилиндра.
Теперь мы снова можем выполнить команду p для проверки внесенных нами изменений, причем эти изменения еще не записаны на диск, поэтому мы все еще можем отменить эту операцию! Так как внесенные изменения кажутся нам корректными, мы можем выполнить команду w для записи изменений на диск с последующим завершением работы утилиты fdisk.
5.3.5. Вывод информации о новом разделе
Давайте снова проверим с помощью команды fdisk -l , совпадает ли реальность с нашими ожиданиями. Разумеется, в примере ниже приводится информация о разделе на диске, представленном файлом устройства /dev/sdb.
5.4. О таблице разделов
5.4.1. Основная загрузочная запись
Информация из таблицы разделов (об основных и расширенных разделах) записывается в основную загрузочную запись (Master Boot Record или MBR). Вы можете использовать утилиту dd для копирования данных из основной загрузочной записи в файл.
В данном примере осуществляется копирование основной загрузочной записи с первого жесткого диска с интерфейсом SCSI.
Этот же инструмент также может использоваться для удаления всей информации о разделах на диске. В данном примере область основной загрузочной записи заполняется нулевыми байтами.
Или удаления всей информации из раздела на жестком диске или со всего диска.
5.4.2. Утилита partprobe
Не забывайте о том, что после восстановления основной загрузочной записи с помощью утилиты dd вам придется сообщить ядру ОС о необходимости повторного чтения таблицы разделов жесткого диска с помощью утилиты partprobe . После запуска утилиты partprobe разделы жесткого диска могут снова использоваться.
5.4.3. Логические разделы
Таблица разделов жесткого диска не содержит информации о логических разделах . Следовательно, резервная копия основной загрузочной записи, созданная с помощью утилиты dd , будет содержать информацию исключительно о первичных и расширенных разделах жесткого диска. Для создания резервной копии основной загрузочной записи с информацией о логических разделах жесткого диска вы можете воспользоваться утилитой sfdisk .
В данном примере показана методика создания резервной копии таблицы всех разделов жесткого диска, включая логические, с записью данных в файл.
А в данном примере осуществляется копирование основной загрузочной записи и информации обо всех логических разделах с устройства, представленного файлом /dev/sda, на устройство, представленное файлом /dev/sdb.
5.5. Практическое задание: разделы жестких дисков
1. Используйте команду fdisk -l для вывода списка существующих разделов жестких дисков с информацией об их размерах.
2. Используйте команду df -h для вывода списка существующих разделов жестких дисков с информацией об их размерах.
3. Сравните вывод утилиты fdisk с выводом утилиты df .
4. Создайте основной раздел размером в 200 МБ на жестком диске малого объема.
5. Создайте основной раздел размером в 400 МБ и два логических раздела размером в 300 МБ каждый на жестком диске большого объема.
6. Используйте команды df -h и fdisk -l для проверки корректности выполненных вами действий.
7. Снова сравните вывод утилиты fdisk с выводом утилиты df . Присутствует ли в выводах обоих утилит информация о новых разделах?
8. С помощью утилиты dd создайте резервную копию основной загрузочной записи , которая содержит информацию о вашем основном разделе размером в 200 МБ.
9. Создайте резервную копию таблицы разделов, содержащей информацию о вашем первичном разделе размером в 400 МБ и о логических разделах размером в 300 МБ каждый. Убедитесь в том, что информация о логических разделах добавлена в файл резервной копии таблицы разделов.
10. (дополнительное задание). Удалите информацию обо всех ваших разделах с помощью утилиты fdisk. После этого восстановите ее из файлов резервных копий.
5.6. Корректная процедура выполнения практического задания: разделы жестких дисков
1. Используйте команду fdisk -l для вывода списка существующих разделов жестких дисков с информацией об их размерах.
С использованием учетной записи пользователя root: # fdisk -l
2. Используйте команду df -h для вывода списка существующих разделов жестких дисков с информацией об их размерах.
3. Сравните вывод утилиты fdisk с выводом утилиты df.
Информация о некоторых разделах жестких дисков будет присутствовать в выводах обоих утилит (возможно, одним из таких разделов будет раздел, представленный файлом устройства /dev/sda1 или /dev/hda1).
4. Создайте основной раздел размером в 200 МБ на жестком диске малого объема.
Выберите один из добавленных ранее дисков (в данном примере используется диск, представленный файлом устройства /dev/sdc).
5. Создайте основной раздел размером в 400 МБ и два логических раздела размером в 300 МБ каждый на жестком диске большого объема.
Выберите один из добавленных ранее дисков (в данном примере используется диск, представленный файлом устройства /dev/sdb).
при работе с утилитой fdisk : n p 1 +400m enter — n e 2 enter enter — n l +300m (дважды)
6. Используйте команды df -h и fdisk -l для проверки корректности выполненных вами действий.
7. Снова сравните вывод утилиты fdisk с выводом утилиты df . Присутствует ли в выводах обоих утилит информация о новых разделах?
Созданные разделы обнаруживаются с помощью утилиты fdisk .
При этом эти же разделы не обнаруживаются с помощью утилиты df .
8. С помощью утилиты dd создайте резервную копию основной загрузочной записи , которая содержит информацию о вашем основном разделе размером в 200 МБ.
9. Создайте резервную копию таблицы разделов , содержащую информацию о вашем первичном разделе размером в 400 МБ и о логических разделах размером в 300 МБ каждый. Убедитесь в том, что информация о логических разделах добавлена в файл резервной копии таблицы разделов.
10 (дополнительное задание). Удалите информацию обо всех ваших разделах с помощью утилиты fdisk. После этого восстановите ее из файлов резервных копий.
Источник