Make-initrd development discussion
 help / color / mirror / Atom feed
From: "Антон Мидюков" <antohami@basealt.ru>
To: make-initrd@lists.altlinux.org
Subject: Re: [make-initrd] Расширение раздела с корнем
Date: Sun, 24 Nov 2024 18:36:23 +0300
Message-ID: <c631d672-438e-40bb-9265-8a7806fca32c@basealt.ru> (raw)
In-Reply-To: <Z0MhY4IuM2wt5WAe@example.org>

24.11.2024 15:51, Alexey Gladkov пишет:
> On Sun, Nov 24, 2024 at 01:34:46PM +0300, Антон Мидюков wrote:
>> 23.11.2024 20:59, Alexey Gladkov пишет:
>>> On Sat, Nov 23, 2024 at 05:18:28PM +0300, Антон Мидюков wrote:
>>>> 3. Раздел увеличивается, но файловая система нет. Так и должно быть? Или
>>>> я что-то делаю не так.  Сразу не заметил, так как в /etc/fstab был
>>>> указан параметр монтирования x-systemd.growfs, благодаря чему файловая
>>>> система расширялась systemd.
>>>
>>> Я это не реализовал так как в тот момент мне это не было нужно. Но считаю,
>>> что раз возникла потребность, то это стоит сделать. Правда пока не не знаю
>>> несколько это будет хлопотно.
>>>
>>
>> В принципе, пока можно и с x-systemd.growfs жить.  Но он привязан к
>> systemd и не поддерживает, к примеру, f2fs, которая хорошо подходит для
>> флешек (что акутально для планшетов, смартфонов, одноплатников).
> 
> Сначала хотел привести относительно простой патч для поддержки, но беглое
> чтение документации превратило патч вот в это:
> 

Для ext4 утилита называется не resizefs, а resize2fs.
И перед тем, как делать резайц, требуется выполнить:
e2fsck -f "$1"

Также нужно будет сделать добавление утилит в initrd.

> diff --git a/features/kickstart/data/bin/kickstart-sh-storage b/features/kickstart/data/bin/kickstart-sh-storage
> index 2cd7b12c..5e794586 100644
> --- a/features/kickstart/data/bin/kickstart-sh-storage
> +++ b/features/kickstart/data/bin/kickstart-sh-storage
> @@ -539,6 +539,59 @@ ks_get_dev_id()
>         printf '%s\n' "$1"
>  }
> 
> +ks_requires_ext4=("resizefs")
> +ks_requires_xfs=("xfs_growfs")
> +ks_requires_f2fs=("resize.f2fs")
> +ks_growfs()
> +{
> +       local PROG
> +       local fs="" requires="" ret=0
> +
> +       PROG="kickstart"
> +       message "command: ${FUNCNAME[0]} $*"
> +
> +       fs="$(blkid --output value --match-tag TYPE -c /dev/null "$1")" ||
> +               return 0
> +
> +       case "$fs" in
> +               ext*) requires="ks_growfs_ext4" ;;
> +               xfs)  requires="ks_growfs_xfs"  ;;
> +               f2fs) requires="ks_growfs_f2fs" ;;
> +               *)
> +                       # resize unsupported.
> +                       return 0
> +                       ;;
> +       esac
> +
> +       ks_check_requires "$requires" ||
> +               return 1
> +
> +       verbose "Increase filesystem to partition size: $1"
> +
> +       case "$fs" in
> +               ext*)

Не

> +                       resizefs "$1" ||

а

  +                       e2fsck -f "$1" && resize2fs "$1" ||
> +                               ret=1
> +                       ;;
> +               xfs)
> +                       mount -n -o rw,X-mount.mkdir \
> +                               "$1" \
> +                               "$ks_datadir/xfs.dir"
> +                       xfs_growfs \
> +                               "$ks_datadir/xfs.dir" ||
> +                               ret=1
> +                       umount -f \
> +                               "$ks_datadir/xfs.dir"
> +                       ;;
> +               f2fs)
> +                       resize.f2fs "$1" ||
> +                               ret=1
> +                       ;;
> +       esac
> +
> +       return $ret
> +}
> +
>  ks_requires_part=("numfmt" "sfdisk")
>  part()
>  {
> @@ -828,6 +881,8 @@ part()
> 
>                 printf ', %s\n' "$size" |
>                         sfdisk -q -N "$partnum" "/dev/$dev"
> +
> +               ks_growfs "/dev/$dev$partnum"
>         fi
> 
>         if [ -n "$encrypted" ]; then
> 
> 


-- 
С уважением, Антон Мидюков <antohami@basealt.ru>


  parent reply	other threads:[~2024-11-24 15:36 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       ` Антон Мидюков
2024-11-24 12:51         ` Alexey Gladkov
2024-11-24 13:00           ` Антон Мидюков
2024-11-24 15:36           ` Антон Мидюков [this message]
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=c631d672-438e-40bb-9265-8a7806fca32c@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