From: "Антон Мидюков" <antohami@basealt.ru> To: make-initrd@lists.altlinux.org Subject: Re: [make-initrd] Расширение раздела с корнем Date: Sun, 24 Nov 2024 13:34:46 +0300 Message-ID: <27e1acdc-8776-4089-831d-693dedc642cd@basealt.ru> (raw) In-Reply-To: <Z0IYHJxDjLFI2NTC@example.org> 23.11.2024 20:59, Alexey Gladkov пишет: > On Sat, Nov 23, 2024 at 05:18:28PM +0300, Антон Мидюков wrote: >> 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##*/}" > > Да, я с этим уже сталкивался. У меня даже есть враппер для этого: > > https://github.com/osboot/make-initrd/blob/master/runtime/data/bin/readlink-e > > В busybox readlink немного не совместимый с coreutils. > То есть нужно заменить 'readlink -ev' на 'readlink-e -v'? Прислать патч? >> >> 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. > > Я это не реализовал так как в тот момент мне это не было нужно. Но считаю, > что раз возникла потребность, то это стоит сделать. Правда пока не не знаю > несколько это будет хлопотно. > В принципе, пока можно и с x-systemd.growfs жить. Но он привязан к systemd и не поддерживает, к примеру, f2fs, которая хорошо подходит для флешек (что акутально для планшетов, смартфонов, одноплатников). -- С уважением, Антон Мидюков <antohami@basealt.ru>
next prev parent reply other threads:[~2024-11-24 10:34 UTC|newest] Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top 2024-11-16 5:23 Egor Shestakov 2024-11-16 13:28 ` Alexey Gladkov 2024-11-23 14:18 ` Антон Мидюков 2024-11-23 17:59 ` Alexey Gladkov 2024-11-24 10:34 ` Антон Мидюков [this message] 2024-11-24 12:51 ` Alexey Gladkov 2024-11-24 13:00 ` Антон Мидюков 2024-11-24 15:36 ` Антон Мидюков 2024-11-24 17:17 ` Alexey Gladkov 2024-11-24 17:29 ` Антон Мидюков 2024-11-25 19:02 ` Антон Мидюков 2024-11-26 16:01 ` Alexey Gladkov 2024-11-26 16:06 ` Антон Мидюков 2024-11-26 16:32 ` Alexey Gladkov 2024-11-26 16:47 ` Alexey Gladkov 2024-11-26 17:22 ` Антон Мидюков 2024-11-26 17:32 ` Alexey Gladkov 2024-11-26 17:44 ` Alexey Gladkov 2024-11-26 17:56 ` Антон Мидюков 2024-11-26 18:16 ` Alexey Gladkov 2024-11-24 13:21 ` Alexey Gladkov 2024-11-24 13:22 ` Антон Мидюков 2024-11-24 13:34 ` Alexey Gladkov
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=27e1acdc-8776-4089-831d-693dedc642cd@basealt.ru \ --to=antohami@basealt.ru \ --cc=make-initrd@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Make-initrd development discussion This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/make-initrd/0 make-initrd/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 make-initrd make-initrd/ http://lore.altlinux.org/make-initrd \ make-initrd@lists.altlinux.org make-initrd@lists.altlinux.ru make-initrd@lists.altlinux.com public-inbox-index make-initrd Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.make-initrd AGPL code for this site: git clone https://public-inbox.org/public-inbox.git