[make-initrd] Расширение раздела с корнем
Антон Мидюков
antohami at basealt.ru
Fri Nov 29 19:17:29 MSK 2024
29.11.2024 19:07, Alexey Gladkov пишет:
> On Fri, Nov 29, 2024 at 05:01:58PM +0100, Alexey Gladkov wrote:
>> On Fri, Nov 29, 2024 at 06:15:12PM +0300, Антон Мидюков wrote:
>>> 28.11.2024 16:04, Alexey Gladkov пишет:
>>>> On Wed, Nov 27, 2024 at 03:32:02PM +0100, Alexey Gladkov wrote:
>>>>> On Tue, Nov 26, 2024 at 05:47:15PM +0100, Alexey Gladkov wrote:
>>>>>>> И тому подобное бесконечно.
>>>>>>> Я так понимаю, неправильно обрабатывает.
>>>>>>> На них номер раздела буквой p отделяются от имени устройства.
>>>>>>> Но код пока не изучал.
>>>>>>
>>>>>> Ясно. Предположу, что у вас только mmc карта, тогда ясно почему мы висим.
>>>>>> kickstart ждёт блочные устройства, которые понимает.
>>>>>>
>>>>>> Вот так, думаю, будет работать:
>>>>>>
>>>>>> diff --git a/features/kickstart/data/bin/kickstart b/features/kickstart/data/bin/kickstart
>>>>>> index 360c485b..291b12d6 100755
>>>>>> --- a/features/kickstart/data/bin/kickstart
>>>>>> +++ b/features/kickstart/data/bin/kickstart
>>>>>> @@ -190,7 +190,7 @@ ks_block_devices()
>>>>>> blocktype="$(get_device_type "$maj")"
>>>>>>
>>>>>> case "$blocktype" in
>>>>>> - sd|virtblk)
>>>>>> + sd|virtblk|mmc)
>>>>>> ;;
>>>>>> *)
>>>>>> continue
>>>>>
>>>>> Весь этот код был выдуман, чтобы отфильтровать именно блочные устройства с
>>>>> дисками, а не все подряд. Я решил _пока_ сделать вот такой белый список.
>>>>>
>>>>> Можно смотреть на partscan, но атрибут появился только в этом году [1].
>>>>>
>>>>> $ grep ^ /sys/block/*/partscan
>>>>> /sys/block/loop0/partscan:0
>>>>> /sys/block/loop1/partscan:0
>>>>> /sys/block/loop2/partscan:0
>>>>> /sys/block/nvme0n1/partscan:1
>>>>>
>>>>> В принципе можно посмотреть на systemd [2], где решается, кажется похожая
>>>>> задача.
>>>>>
>>>>> [1] https://lore.kernel.org/all/20240502130033.1958492-1-hch@lst.de/
>>>>> [2] https://github.com/systemd/systemd/blob/main/src/shared/blockdev-util.c#L359
>>>>
>>>> Антон, не мог бы ты, если будет время, проверить изменения в for-master ?
>>>> Я попробовал переписать этот кусок а-ля systemd.
>>>>
>>>
>>> На aarch64 при загрузке с SD-карты, когда файловая система корня ext4, резайц файловой системы происходит только при второй загрузке.
>>> kicstart_not_resizefs.txt первая загрузка. Раздел увеличился.
>>> kicstart_resizefs_success.txt вторая загрузка. Файловая система увеличилась.
>>
>> А без патчей из for-master работает или проблема есть и в master ?
>
> Понятно. Это общая проблема:
>
> Из kicstart_not_resizefs.txt:
>
> ++ e2fsck -yf /dev/mmcblk1p2
> e2fsck 1.47.1 (20-May-2024)
> Pass 1: Checking inodes, blocks, and sizes
> Pass 2: Checking directory structure
> Pass 3: Checking directory connectivity
> Pass 4: Checking reference counts
> Pass 5: Checking group summary information
> /dev/mmcblk1p2: 36511/263472 files (0.3% non-contiguous), 603579/1051904 blocks
> ++ resize2fs /dev/mmcblk1p2
> resize2fs 1.47.1 (20-May-2024)
> Please run 'e2fsck -f /dev/mmcblk1p2' first.
>
> ++ ret=1
> ++ return 1
>
>
> Из kicstart_resizefs_success.txt:
>
> ++ e2fsck -yf /dev/mmcblk1p2
> e2fsck 1.47.1 (20-May-2024)
> Pass 1: Checking inodes, blocks, and sizes
> Pass 2: Checking directory structure
> Pass 3: Checking directory connectivity
> Pass 4: Checking reference counts
> Pass 5: Checking group summary information
> /dev/mmcblk1p2: 36535/263472 files (0.3% non-contiguous), 605515/1051904 blocks
> ++ resize2fs /dev/mmcblk1p2
> resize2fs 1.47.1 (20-May-2024)
> Resizing the filesystem on /dev/mmcblk1p2 to 7567872 (4k) blocks.
> The filesystem on /dev/mmcblk1p2 is now 7567872 (4k) blocks long.
>
> ++ return 0
>
А что можно с этим поделать?
--
С уважением, Антон Мидюков <antohami at basealt.ru>
More information about the Make-initrd
mailing list