[megoldva] root partició kiterjesztése nem megy

Fórumok

Sziasztok,

most már pár napja szívok egy n00b problémával:

van egy RPI 64GB-os kártyával, amit szeretnék dd-vel átírni egy 256GB-os kártyára. Ez hibátlanul sikerül is, utána tudok bootolni a 256-os kártyáról.

A probléma ott kezdödik, hogy szeretném a 2. particiót a kártya maximális méretére kiterjeszteni. Két féleképp próbáltam, egyszer futó rendszernél és egyszer egy másik gép kártyaolvasójában. Csak a parancsok és méretek miatt a folyamat itt bemásolva:

pi@dockerpi:~ $ sudo parted /dev/mmcblk0
GNU Parted 3.2
Using /dev/mmcblk0
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit chs
(parted) print
Model: SD SN256 (sd/mmc)
Disk /dev/mmcblk0: 31107,171,39
Sector size (logical/physical): 512B/512B
BIOS cylinder,head,sector geometry: 31107,255,63.  Each cylinder is 8225kB.
Partition Table: msdos
Disk Flags: 

Number  Start      End          Type     File system  Flags
 1      0,32,32    32,194,33    primary  fat32        lba
 2      32,194,34  7764,108,23  primary  ext4

(parted) resizepart 2 31107,171,39
(parted) 
(parted) print                                                            
Model: SD SN256 (sd/mmc)
Disk /dev/mmcblk0: 31107,171,39
Sector size (logical/physical): 512B/512B
BIOS cylinder,head,sector geometry: 31107,255,63.  Each cylinder is 8225kB.
Partition Table: msdos
Disk Flags: 

Number  Start      End           Type     File system  Flags
 1      0,32,32    32,194,33     primary  fat32        lba
 2      32,194,34  31107,171,39  primary  ext4

ezután még volt

sudo e2fsck -f /dev/mmcblk0p2
sudo resize2fs /dev/mmcblk0p2

aztán átrakva a pi-ba a bootolás során megáll az USB eszközök felismerésénél.

próbáltam úgy is, hogy letörlöm a particiót és újra, nagyobb méretben létrehozom resize helyett, de az eredmény mindig ugyanaz. Van egy leírás, ami a futó rendszer alatt csinálja végig az egészet, az is ugyanazt eredményezi.

Mit bénulok el?

Hozzászólások

Amellett hogy ez így szemre okés, a raspi-config meg tudja csinálni amit szeretnél, gondolom az csak jól működik.

a tipped volt a tuti, a

sudo raspi-config --expand-rootfs

meghozza a várva várt eredményt:

pi@dockerpi:~ $ sudo parted
GNU Parted 3.2
Using /dev/mmcblk0
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print                                                            
Model: SD SN256 (sd/mmc)
Disk /dev/mmcblk0: 256GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End    Size   Type     File system  Flags
 1      1049kB  269MB  268MB  primary  fat32        lba
 2      269MB   256GB  256GB  primary  ext4

(parted) 

köszönöm!

Szerkesztve: 2025. 01. 19., v – 10:37

Nem volt dolgom még RPI kütyüvel, nem tudom, van-e valami méretkorlát bootra valamelyik verzióban, de azt már olvastam, hogy háklisak a kártyatípusokra, van amiről nem bootolnak be rendesen (van, hogy bebootol, de később újraindul, aztán be sem bootol már).

 

Szerk.: Tipp: Én megnézném pl., hogy ~120 GB-ra növelve bebootol-e.

Próbálok minöségi kártyákat használni, jelenleg 2 SanDisk Max Endurance (64GB) ill. High Endurance (256GB) kártyáról van szó.

Mint írtam, amikor dd-vel klónozom a 64-est a 256-osra, de nem változtatok a partició mérten, akkor szépen elindul a 256-osról is. A méretváltoztatás után is elindul, de elakad.

Jó tipp a 120GB méret, erre nemrég én is gondoltam....ki fogom próbálni

Hogy néz ki az fstab-od, esetleg nem a partuuid hivatkozás van benne?  Az ugyanis változhat egy ilyen parted-del történő resize után, fel is hívja erre a figyelmet a parted kilépéskor.  Ha így van, akkor az fstab update-je kell és a bootloader tudtára is kell adnod (nincs raspberrym, de google alapján a /boot/cmdline.txt esélyes).

# losetup --partscan /dev/loop0 /tmp/test.img

# cat /proc/partitions
major minor  #blocks  name
   7        0    1048576 loop0
 259        0     498976 loop0p1

# blkid
/dev/loop0p1: PARTUUID="b1024fe5-01"

# parted /dev/loop0
GNU Parted 3.4
Using /dev/loop0
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p
Model: Loopback device (loopback)
Disk /dev/loop0: 1074MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End    Size   Type     File system  Flags
 1      1049kB  512MB  511MB  primary

(parted) resizepart 1 100%
(parted) p
Model: Loopback device (loopback)
Disk /dev/loop0: 1074MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  1074MB  1073MB  primary

(parted) quit
Information: You may need to update /etc/fstab.

# cat /proc/partitions
major minor  #blocks  name
   7        0    1048576 loop0
 259        1    1047552 loop0p1

# blkid
/dev/loop0p1: PARTUUID="780bdd38-01"
#

Ezért szar mások által előre állított, „felhasználóbaráti” szintre butított rendszert felrakni, mert nem tudod, hogy mit hogy állítottak be, és ha valami nem megy, akkor nem tudni mi nem kerek, mi okozza. Valószínű az van, amit a kolléga ír, fstab-ban, vagy GRUB konfigban fájlrendszer UUID van megadva, és nem partíció UUID, amit PARTUUID-nek szoktak írni. Bár elvileg a resize2fs-nek meg kéne tartsa a fájlrendszer UUID-jét is, de ezt nem mondanám biztosra.

Én már csináltam ilyet, hogy rendszer alatt partíciót átméreteztem, csak én nem RPi-on, hanem sztenderd x86_64 PC-n, és sima is volt. Ugyanígy is csináltam, mint te próbáltad, annyi, hogy cfdisk-et használtam parted helyett, de annak mindegynek kéne lennie, aztán épp úgy fsck meg resite2fs futott utána. Természetesen nálam PARTUUID volt megadva az fstab-ban és systemd-boot konfigban is.

The world runs on Excel spreadsheets. (Dylan Beattie)

Na, ezt sose gondoltam volna. Holnap muszáj lesz kipróbálni...

Nem bírtam ki... szóval az fstabban (és a cmdline.txt-ben is) nálam label van, így ha az lemaradt, akkor érthető, hogy miért nem bootolt.

Viszont a UUID és PARTUUID megmaradt, amit meg nem értek (hacsak a raspi-config vissza nem ügyeskedte).

A mezei resizepart tényleg megváltoztatta a PARTUUID-t.

a fura az, hogy bootolt, de nem futott végig, hanem elakadt az USB eszközök felismerésénél (írtam a topic nyitóban). WTF?!

annyi még, hogy a sudo e2fsck -f /dev/mmcblk0p2 parancsnál, talál mindig ugyanott egy hibát, amit kijavít. Lehet azzal romlik el a bootfolyamat. e2fsck nélkül vizsont nem engedte futtatni a resize2fs-t

Hátttőőőő... most erőltetek egy magyarázatot, de ugye kábé úgy van, hogy bootnál behúzza a kernelt meg az initrdt, majd bebikázza a kernelt, ami végrehajtja amit az initrdben talál. Namost, ha az usb modulok az igazi rootfs-en vannak (ami nem kizárt, báár nem hiszem), akkor magyarázható, hogy amikor próbálná összeszálazni őket, akkor bizony nem sikerül.

megnéztem én is az eredeti kártyát és a 256-osat raspi-config-el méretváltás után....ugyanaz a PARTUUID van mindkettön

akkor lehet, hogy az Inode 43466 javítása miatt nem megy tovább a boot folyamat, mert ott valami elromlik:

bbking@bc-debian:~$ sudo e2fsck -f /dev/mmcblk0p2
e2fsck 1.47.0 (5-Feb-2023)
Pass 1: Checking inodes, blocks, and sizes
Inodes that were part of a corrupted orphan linked list found.  Fix<y>? yes
Inode 43466 was part of the orphaned inode list.  FIXED.
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information

/dev/mmcblk0p2: ***** FILE SYSTEM WAS MODIFIED *****
/dev/mmcblk0p2: 208834/3883008 files (0.6% non-contiguous), 14149276/15526144 blocks

illetve ahogy nézem az /usr/bin/raspi-config fájlt és úgy olvasom, hogy az elsö boot után automatikusan átméretezi a maximum méretre a particiót, akkor lehet, duplán csináltam valamit és attól hal be. Na mindegy, a lényeg, h müködik

A label és a fájlrendszer UUID az a fájlrendszer formázásakor változik, átméretezéskor nem. Az PARTUUID meg csak akkor változik, ha törlöd az adott partíciót, és újat hozol létre, átméretezéskor nem kéne változnia.

A label elvileg emberileg a legjobban megjegyezhető, de a UUID, PARTUUID se gáz, pl. vi/vim-klónokban :r !blkid segítségével beolvasható az összes fajta label, UUID, PARTUUID, nem kell kézzel bemásolgatni, mikor az ember az fstab-ot, meg GRUB vagy más konfigot szerkeszt.

Egyet nem szabad csinálni, /dev/eszköznévvel hivatkozni a partícióra, az állandóan eltolódhat, változhat.

The world runs on Excel spreadsheets. (Dylan Beattie)