- перезагрузить таблицу разделов в Linux без перезагрузки системы
- Как перезагрузить таблицу разделов в Linux с помощью команды partprobe
- Linux перечитать таблицу разделов
- Как перезагрузить таблицу разделов в Linux с помощью команды partprobe
- Как перезагрузить таблицу разделов в Linux с помощью команды blockdev
- Как перезагрузить таблицу разделов в Linux с помощью команды hdparm
- Как перезагрузить таблицу разделов в Linux с помощью команды partx
перезагрузить таблицу разделов в Linux без перезагрузки системы
Thank you for reading this post, don’t forget to subscribe!
Эти методы заставляют ядро перезагружать таблицу разделов и повторно заполнять ее идентификаторы в /dev.
Если вы ищете утилиты для разделов диска, вы можете попробовать одну из них.
Утилиты дискового разделения — это fdisk и parted.
Вы можете получить вывод, подобный приведенному ниже, в большинстве случаев в виртуальной среде, когда вы выполняете разделение диска.
Вы можете получить такой же вывод в большинстве случаев в физической среде, когда вы выполняете разделение диска.
The kernel still uses the old table . The new table will be used at the next reboot or after you run partprobe ( 8 ) or kpartx ( 8 ) .
Я протестировал приведенные ниже команды в системе 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. Помните, что вам нужно ввести имя вашего устройства вместо нашего.
Linux перечитать таблицу разделов
Эти методы заставляют ядро перезагружать таблицу разделов и повторно заполнять ее идентификаторы в /dev.
Если вы ищете утилиты для разделов диска, вы можете попробовать одну из них.
Утилиты дискового разделения — это fdisk и parted.
Вы можете получить вывод, подобный приведенному ниже, в большинстве случаев в виртуальной среде, когда вы выполняете разделение диска.
The partition table has been altered. Syncing disks.
Вы можете получить такой же вывод в большинстве случаев в физической среде, когда вы выполняете разделение диска.
The partition table has been altered. Calling ioctl() to re-read partition table. Re-reading the partition table failed.: Device or resource busy The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).
Я протестировал приведенные ниже команды в системе 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.
$ dmesg | grep sdb [ 3.143163] sd 3:0:0:0: [sdb] 20971520 512-byte logical blocks: (10.7 GB/10.0 GiB) [ 3.143186] sd 3:0:0:0: [sdb] Write Protect is off [ 3.143192] sd 3:0:0:0: [sdb] Mode Sense: 00 3a 00 00 [ 3.143276] sd 3:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA [ 3.145620] sd 3:0:0:0: [sdb] Attached SCSI disk [ 188.810583] sdb: sdb1 sdb2 sdb3 sdb4 < sdb5 >[ 219.112109] sdb: sdb1 sdb2 sdb3 sdb4
Как перезагрузить таблицу разделов в Linux с помощью команды blockdev
Утилита blockdev позволяет вызывать ioctl блочных устройств из командной строки.
Мы можем использовать команду blockdev для выполнения этой задачи.
$ sudo blockdev --rereadpt -v /dev/sdb
Используйте следующую команду dmesg, чтобы увидеть изменения в ядре.
Да, я вижу изменения, потому что в dmesg снова появился новый лог для устройства sdb.
$ dmesg | grep sdb [ 3.143163] sd 3:0:0:0: [sdb] 20971520 512-byte logical blocks: (10.7 GB/10.0 GiB) [ 3.143186] sd 3:0:0:0: [sdb] Write Protect is off [ 3.143192] sd 3:0:0:0: [sdb] Mode Sense: 00 3a 00 00 [ 3.143276] sd 3:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA [ 3.145620] sd 3:0:0:0: [sdb] Attached SCSI disk [ 188.810583] sdb: sdb1 sdb2 sdb3 sdb4 < sdb5 >[ 219.112109] sdb: sdb1 sdb2 sdb3 sdb4 < sdb5 >[ 422.506376] sdb: sdb1 sdb2 sdb3 sdb4
Как перезагрузить таблицу разделов в Linux с помощью команды hdparm
hdparm предоставляет интерфейс командной строки для различных интерфейсов ядра, поддерживаемых подсистемой «libata» Linux SATA / PATA / SAS и более старой подсистемой драйверов IDE.
В качестве альтернативы, мы можем использовать команду hdparm для выполнения этой задачи.
$ sudo hdparm -z /dev/sdb /dev/sdb: re-reading partition table
Используйте следующую команду dmesg, чтобы увидеть изменения в ядре.
Да, я вижу изменения, потому что в dmesg снова появился новый лог для устройства sdb.
$ dmesg | grep sdb [ 3.143163] sd 3:0:0:0: [sdb] 20971520 512-byte logical blocks: (10.7 GB/10.0 GiB) [ 3.143186] sd 3:0:0:0: [sdb] Write Protect is off [ 3.143192] sd 3:0:0:0: [sdb] Mode Sense: 00 3a 00 00 [ 3.143276] sd 3:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA [ 3.145620] sd 3:0:0:0: [sdb] Attached SCSI disk [ 188.810583] sdb: sdb1 sdb2 sdb3 sdb4 < sdb5 >[ 219.112109] sdb: sdb1 sdb2 sdb3 sdb4 < sdb5 >[ 422.506376] sdb: sdb1 sdb2 sdb3 sdb4 < sdb5 >[ 504.328312] sdb: sdb1 sdb2 sdb3 sdb4
Как перезагрузить таблицу разделов в Linux с помощью команды partx
partx сообщает ядру о наличии и нумерации разделов на диске.
Команда partx является частью пакета util-linux и доступна из архива ядра Linux.
В качестве альтернативы, мы можем использовать команду partx для выполнения этой задачи.
$ sudo partx -a /dev/sdb или $ sudo partx -u /dev/sdb partx: /dev/sdb: error adding partitions 1-5
Вы можете дважды подтвердить это, выполнив следующую команду.
Если таблица разделов успешно перезагружена и видна ядру, вы можете увидеть эти новые разделы в этом месте.
$ cat /proc/partitions major minor #blocks name 8 0 31457280 sda 8 1 31455232 sda1 8 16 10485760 sdb 8 17 1048576 sdb1 8 18 512000 sdb2 8 19 512000 sdb3 8 20 1 sdb4 8 21 1048576 sdb5 8 32 10485760 sdc
Эту же информацию можно найти с помощью следующей команды ls.
$ ls -l /dev/sdb* brw-rw---- 1 root disk 8, 16 Mar 8 07:23 /dev/sdb brw-rw---- 1 root disk 8, 17 Mar 8 07:23 /dev/sdb1 brw-rw---- 1 root disk 8, 18 Mar 8 07:23 /dev/sdb2 brw-rw---- 1 root disk 8, 19 Mar 8 07:23 /dev/sdb3 brw-rw---- 1 root disk 8, 20 Mar 8 07:23 /dev/sdb4 brw-rw---- 1 root disk 8, 21 Mar 8 07:23 /dev/sdb5
Эту же информацию можно найти с помощью следующей команды partx.
$ sudo partx -l /dev/sdb # 1: 2048- 2099199 ( 2097152 sectors, 1073 MB) # 2: 2099200- 3123199 ( 1024000 sectors, 524 MB) # 3: 3123200- 4147199 ( 1024000 sectors, 524 MB) # 4: 4147200- 20971519 ( 16824320 sectors, 8614 MB) # 5: 4149248- 6246399 ( 2097152 sectors, 1073 MB)