From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,RP_MATCHES_RCVD autolearn=ham autolearn_force=no version=3.4.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=basealt.ru; s=dkim; t=1732371510; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=mh1vzN3AOLE9Jz+yL95JEF3xOYVK98LY5ObaoR1GSvU=; b=UY80zipG8NnxLhGI/0gQKs58OjuLcY1DYEW7fYuE8+ROFl4iz3N5C28VJuEJgwBzAo5Lie dIW1+R/GOZUi3gPkWBBUt0sYxRg0dPo6G0oK9OvfuJRLbYbMZW5zR/2d4ofK0J3nnhHA7K ZjGQGIqzl6Ha0+peNhY7E0UJUy5hp3EA45NO9NoHV7GfS1FzUsgaumihU4mtDlZ6WySQTb caIRUrSf90eAsuyurD5wlzevY1hI6Uqol8XUZ2bgjnMvXvsoG/vQHR6bmLGhHvMqqmkeTQ yabHe30VmXHgX8xYPE/tze2YmbwodVL2kelAVOgVrnSxvgK67iN9V8+NU2aq2Q== Message-ID: <8a849bcc-e792-40e5-a558-6c8693935278@basealt.ru> Date: Sat, 23 Nov 2024 17:18:28 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: make-initrd@lists.altlinux.org References: <20241116122309.df5fdad73578af49341206ad@basealt.ru> Content-Language: ru From: =?UTF-8?B?0JDQvdGC0L7QvSDQnNC40LTRjtC60L7Qsg==?= In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: Re: [make-initrd] =?utf-8?b?0KDQsNGB0YjQuNGA0LXQvdC40LUg0YDQsNC30LQ=?= =?utf-8?b?0LXQu9CwINGBINC60L7RgNC90LXQvA==?= X-BeenThere: make-initrd@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: make-initrd@lists.altlinux.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Nov 2024 14:18:34 -0000 Archived-At: List-Archive: 16.11.2024 16:28, Alexey Gladkov пишет: > On Sat, Nov 16, 2024 at 12:23:09PM +0700, Egor Shestakov wrote: >> Всем привет! >> >> Есть ли у initrd возможность штатными средствами расширить раздел >> с корнем на всё свободное место? Это необходимо после установки образа >> системы на sd-карточку. Фича kickstart вроде умеет создавать разделы, но >> как с ним работать не понятно, и можно ли её использовать на уже >> установленной системе? > > Это можно сделать через kickstart. У команды partition есть опция --grow [1]. > Вот тут [2] есть пример использования. Чтобы расширить существующий раздел > нужно использовать опцию --resize. > > [1] https://github.com/osboot/make-initrd/wiki/feature-kickstart#part-or-partition > [2] https://github.com/osboot/make-initrd/blob/master/testing/test-root-efi-partition.cfg > Я попробовал. Столкнулся с проблемами. 1. Какой-то не такой readlink используется в initrd, который не знает опцию -e. Обошёл так: diff --git a/make-initrd/features/kickstart/data/bin/kickstart-sh-storage b/make-initrd/features/kickstart/data/bin/kickstart-sh-storage index 2cd7b12c..de9b9c1a 100644 --- a/make-initrd/features/kickstart/data/bin/kickstart-sh-storage +++ b/make-initrd/features/kickstart/data/bin/kickstart-sh-storage @@ -820,7 +825,7 @@ part() local partnum read -r partnum < "/sys/class/block/$partdev/partition" - dev="$(readlink -ev "/sys/class/block/$partdev")" + dev="$(readlink -v "/sys/class/block/$partdev")" dev="${dev%/*}" dev="${dev##*/}" 2. Есть потребность считать корневым разделом тот, что скрывается за переменной ROOT, чтобы не нужно было привязываться к конкретному UUID или LABEL и соответственно в случае их изменения пересобирать initrd. Поэтому сделал такой патчик: diff --git a/make-initrd/features/kickstart/data/bin/kickstart-sh-storage b/make-initrd/features/kickstart/data/bin/kickstart-sh-storage index 2cd7b12c..de9b9c1a 100644 --- a/make-initrd/features/kickstart/data/bin/kickstart-sh-storage +++ b/make-initrd/features/kickstart/data/bin/kickstart-sh-storage @@ -12,6 +12,11 @@ ks_devname() { local devname='' case "$1" in + root) + [ -n "$ROOT" ] || fatal "root is not specified" + ks_devname "$ROOT" + return + ;; LABEL=*) devname="$(blkid -o device -L "${1#LABEL=}")" ;; kickstart файл у меня получился такой: part --onpart=root --resize --grow --useexisting 3. Раздел увеличивается, но файловая система нет. Так и должно быть? Или я что-то делаю не так. Сразу не заметил, так как в /etc/fstab был указан параметр монтирования x-systemd.growfs, благодаря чему файловая система расширялась systemd. -- С уважением, Антон Мидюков