Когда я запускаю fdisk и изменяю размер раздела, fdisk говорит в конце его вывода:
The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8)
Я хотел бы сделать это без перезагрузки (а затем написать скрипт, который это делает). Как мне использовать kpartx, чтобы сделать это правильно? Я пробовал:
kpartx -f -v /dev/mmcblk0
Какие выводы:
mmcblk0p1 : 0 102400 /dev/mmcblk0 2048
mmcblk0p2 : 0 7657472 /dev/mmcblk0 104448
и:
kpartx -a -v /dev/mmcblk0
какие выводы:
device-mapper: reload ioctl on mmcblk0p1 failed: Invalid argument
create/reload failed on mmcblk0p1
add map mmcblk0p1 (0:0): 0 102400 linear /dev/mmcblk0 2048
device-mapper: reload ioctl on mmcblk0p2 failed: Invalid argument
create/reload failed on mmcblk0p2
add map mmcblk0p2 (0:0): 0 7657472 linear /dev/mmcblk0 104448
Это для SD-карты в запущенном Debian Debian.
РЕДАКТИРОВАТЬ: чтобы уточнить, что я пытаюсь сделать; Я удаляю неиспользованный p3 с SD-карты и изменяю размер p2, чтобы заполнить карту. На данный момент карта содержит небольшой загрузочный раздел p1, а p2 находится там, где находится ОС.
partprobe
?Ответы:
Вы хотите
partx -u
, а неkpartx
(который работает на устройствах устройства отображения).источник
-u
флага?man partx
бы ответил на это.Я считаю, @derobert (который прокомментировал исходный вопрос), вероятно, правильно. В случае fdisking раздела, который используется в настоящее время, кажется, нет другого выбора, кроме как перезагрузить.
Даже когда я использую
partprobe
(который получается сapt-get install parted
), я получаю следующий вывод:источник
parted
/partprobe
не приведут к такой ошибке и могут быть использованы на смонтированном разделе без перезагрузки.parted
но все равно получаю ту же ошибку. Решение состоит в том, чтобы размонтировать устройство перед запускомparted
на нем, тогда вам не нужно перезагружать систему, чтобы сообщить ядру об использовании нового раздела вместо старого разделаЯ получил эту проблему, потому что я забыл размонтировать устройство. После:
fdisk работал правильно.
источник