Автоматически расширять последний раздел, чтобы использовать все нераспределенное пространство, используя parted в пакетном режиме

grc точно!

настройте параметры цвета с помощью регулярного выражения в файле: ~ .grc / conf.tail (или любое другое имя по вашему желанию)

regexp=.*(select .*)$
colours=unchanged,cyan
=====
regexp=.*(update .*)$
colours=unchanged,bold yellow
=====
regexp=.*(insert .*)$
colours=unchanged,bold yellow
=====
regexp=.*(emp=\d+).*
colours=unchanged,reverse green
=====
regexp=.*http.*/rest/contahub.cmds.(.*?)/(\w*).*$
colours=unchanged,green,magenta
=====
regexp=.*http.*/M/.*\.(.*?Facade)/(\w*).*$
colours=unchanged,underline green,underline magenta

командная строка:

grc -c conf.tail tail -f log/tomcat/catalina.out

результаты: screenshot

информация для настройки grc: https://github.com/manjuraj/config/blob/master/.grc/sample.conf

19
23.06.2017, 23:14
6 ответов

В текущих версиях parted, resizepart должен работать для раздела (parted понимает 100% или что-то вроде -1s, последнему также требуется --, чтобы остановить синтаксический анализ параметров в командной строке). Чтобы определить точное значение, вы можете использовать единицу с, бесплатную печать. resize2fs идет позже для файловой системы.


В старых версиях parted была команда resize, которая одновременно изменяла размер раздела и файловой системы, она работала даже для vfat.

В модификации Kobo ereader я использовал это, чтобы изменить размер 3-го раздела внутренней памяти до максимального: (он слепо предполагает, что нет 4-го раздела и таблицы msdos и прочего)

start=$(cat /sys/block/mmcblk0/mmcblk0p3/start)
end=$(($start+$(cat /sys/block/mmcblk0/mmcblk0p3/size)))
newend=$(($(cat /sys/block/mmcblk0/size)-8))

if [ "$newend" -gt "$end" ]
then
    parted -s /dev/mmcblk0 unit s resize 3 $start $newend
fi

Таким образом, вы также можете получить значения из /sys/block/.../, если ядро ​​поддерживает это. Но parted удалил команду resize, так что теперь вам нужно выполнить два шага: resizepart для увеличения раздела и любой инструмент, который ваша файловая система предоставляет для его увеличения, например resize2fs для ext*.

36
27.01.2020, 19:44

Из-за того, что не удалось правильно выполнить разделение сценария (, он запросил подтверждение, поскольку раздел был смонтирован, и, вопреки другим ответам, которые я нашел, не понял -1sили 100%), я только что нашел инструмент для расширения . ] который делает именно это.

Использование простое :growpart /dev/sda 3(, а затем resize2fs /dev/sda3или другая подходящая команда для используемого типа файловой системы ).

В Debian и Ubuntu он упакован как облако -гость -утилиты .

41
27.01.2020, 19:44

Правильный способ сделать это — использовать тот факт, что parted имеет понятие процентов. Так

parted /dev/sda resize 3 100%
13
27.01.2020, 19:44

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

sudo parted -s /dev/sdb "resizepart 2 -1" quit
sudo mount -av
sudo umount /dev/sdb2
sudo mount /dev/sdb2 /mnt
sudo resize2fs /dev/sdb2

Возможно, нет необходимости монтировать перед изменением размера. Я сделал это, чтобы подавить запрос от resize2fs для пользовательского ввода.

6
27.01.2020, 19:44

В коротком видео с шагами -по -показано пошаговое руководство «Как изменить размер файловой системы в реальном времени в Linux », как добиться этого очень простым способом. Я только что расширил /dev/sda2на виртуальной машине VirtualBox после изменения размера виртуального жесткого диска VDI (). Это работает довольно хорошо:

  1. Создайте резервную копию данных.
  2. Пускfdisk:sudo fdisk /dev/sda.
  3. Печать разделов:p.
  4. Удалить раздел, размер которого нужно изменить (это своего рода отвязка, данные не удаляются):d. Если у вас несколько разделов, вас спросят, какой из них следует удалить.
  5. Создать новый раздел:n. Следуйте диалоговому окну для установки типа раздела , номера раздела , первого сектора и последнего сектора . Последние два параметра определяют размер нового раздела. По умолчанию пространство между первым и последним секторами будет покрывать все доступное свободное пространство. Последняя опция :Выберите, следует ли удалять подпись.
  6. См. изменения (и сравните результат с состоянием до):p.
  7. Сохраните изменения и выйдите из fdisk:w(используйте qдля выхода без сохранения ).
-1
28.04.2020, 19:03

я знаю вопрос, упомянутый с помощью parted, но вот скрипт bash с использованием fdisk и resize2fs.

Я использую его на Raspberry Pi, но вы можете использовать его везде, где доступны эти 2 инструмента, просто измените целевой диск (sda, sdb,... ).

Всегда будьте осторожны при манипулировании разделами :вы можете сломать систему!

#!/bin/bash

#
#   This bash script extends the last partition of the specified disk
#   To the maximum size available.
#

# target disk
disk='mmcblk0'

# get last partition
part=$(grep  "${disk}" /proc/partitions | tail -1 | awk '{print $4}' | xargs)
partN=$(echo $part | tail -c 2)    

# fdisk: delete and recreate the last partition with the largest size possible.
(
echo d # Delete partition
echo $partN # Last partition
echo n # Add a new partition
echo p # Primary partition
echo $partN # Last partition
echo   # First sector (Accept default: 1)
echo   # Last sector (Accept default: varies)
echo w # Write changes
) | fdisk /dev/$disk 

# update filesystem to match new partition size
resize2fs /dev/$part
0
07.07.2020, 10:10

Теги

Похожие вопросы