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

перезагрузить таблицу разделов в 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 — это про­грам­ма, кото­рая инфор­ми­ру­ет ядро опе­ра­ци­он­ной систе­мы об изме­не­ни­ях таб­ли­цы раз­де­лов, запра­ши­вая у систе­мы, что­бы она пере­чи­та­ла таб­ли­цу разделов.

Читайте также:  Linux find all files with name recursively

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

В этом при­ме­ре я соби­ра­юсь исполь­зо­вать /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, чтобы увидеть изменения в ядре.

Читайте также:  Мониторинг нагрузки сервера linux

Да, я вижу изменения, потому что в 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)

Источник

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