Alternative pour modifier partition racine

hello all,
Voici pour commencer des informations sur le disque et son partitionnement que je voudrais modifier.

root@mx:~# fdisk -l
Disk /dev/sda: 232,9 GiB, 250059350016 bytes, 488397168 sectors
Disk model: ST9250410AS     
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x7ea2983a

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1  *         2048 484139007 484136960 230,9G 83 Linux
/dev/sda2       484139008 488333311   4194304     2G 83 Linux
root@mx:~# lsblk 
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 232,9G  0 disk 
├─sda1   8:1    0 230,9G  0 part /
└─sda2   8:2    0     2G  0 part [SWAP]
sr0     11:0    1  1024M  0 rom  

gparted1

  • Sur la partition racine sda1 /rootMX19 que je voudrais réduire, sont stocké des fichiers d’une distribution Puppy, sur laquelle je compte booter en ram en passant par mon gestionnaire de démarrage qui est grub2

A) Les fichiers a la racine de sda1 qui seront monté en ram via grub au prochain démarrage

root@mx:~# ls /bionicpup32/
adrv_upupbb_19.03.sfs  fdrv_upupbb_19.03.sfs  firefox.sfs  initrd.gz  puppy_upupbb_19.03.sfs  upupbbsave-karlus  vmlinuz  zdrv_upupbb_19.03.sfs

B) Le fichier /etc/grub.d/40_custom

root@mx:~# cat /etc/grub.d/40_custom 
menuentry "bionicpup32 on /dev/sda1" {
set root='(hd0,msdos1)'
linux /bionicpup32/vmlinuz pdev1=sda1 psubdir=bionicpup32  **pfix=ram**
initrd /bionicpup32/initrd.gz
}

C) Je boot sur la menuentry « bionicpup32 »

D) Ce qui donne ceci comme points de montages

# dfc -Toab
SYSTÈME DE FICHIERS TYPE       %UTILISÉ DISPO.  TOTAL MONTÉ SUR        OPTIONS DE MONTAGE                                  
tmpfs                tmpfs           9,6%   2,8G   3,1G /initrd/mnt/tmpfs rw,relatime,size=3277760k                           
unionfs              aufs            9,6%   2,8G   3,1G /                 rw,relatime,si=86055d8a                             
/dev/loop0           squashfs      100,0%   0,0B 196,0M /initrd/pup_ro2   ro,noatime                                          
/dev/loop1           squashfs      100,0%   0,0B  19,5M /initrd/pup_f     ro,noatime                                          
/dev/loop2           squashfs      100,0%   0,0B  23,5M /initrd/pup_z     ro,noatime                                          
/dev/loop3           squashfs      100,0%   0,0B  21,0M /initrd/pup_a     ro,noatime                                          
tmpfs                tmpfs          90,2% 512,0K   5,1M /initrd/files     ro,relatime,size=5220k,mode=755                     
devtmpfs             devtmpfs        0,0%   1,9G   1,9G /dev              rw,relatime,size=1962260k,nr_inodes=213591,mode=755 
none                 proc          100,0%   0,0B   0,0B /proc             rw,relatime                                         
none                 devpts        100,0%   0,0B   0,0B /dev/pts          rw,relatime,gid=2,mode=620,ptmxmode=000             
none                 sysfs         100,0%   0,0B   0,0B /sys              rw,relatime                                         
shmfs                tmpfs           0,0% 881,3M 881,3M /dev/shm          rw,relatime,size=902420k                            
# 
# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0    7:0    0 195,9M  1 loop /initrd/pup_ro2
loop1    7:1    0  19,4M  1 loop /initrd/pup_f
loop2    7:2    0  23,2M  1 loop /initrd/pup_z
loop3    7:3    0  20,7M  1 loop /initrd/pup_a
sda      8:0    0 232,9G  0 disk 
├─sda1   8:1    0 230,9G  0 part 
└─sda2   8:2    0     2G  0 part 
sr0     11:0    1  1024M  0 rom  

On voit que les partitions ne sont pas montées, mais y a t"il des accès disque ?
A ce stade est il envisageable ou pas de vouloir modifier le partitionnement du disque ?

Merci

Les périphériques /dev/loop*, ils ne seraient pas basés sur des fichiers *.sfs dans le répertoire /bionicpup32 de la partition /dev/sda1 ?

oui exactement,…
entre temps, je viens de penser a ceci, GParted Live on Hard Disk
https://gparted.org/livehd.php
Je viens de tester avec la version gparted-live-1.2.0-1-i686.iso

$ ls /home/carl/isos/
gparted-live-1.2.0-1-i686.iso
$ cat /etc/grub.d/40_custom 
menuentry "Gparted live" {
set isofile="/home/carl/isos/gparted-live-1.2.0-1-i686.iso"
loopback loop $isofile
linux (loop)/live/vmlinuz boot=live config union=overlay username=user components noswap noeject vga=788 ip= net.ifnames=0 toram=filesystem.squashfs findiso=$isofile
initrd (loop)/live/initrd.img
}

J"ai tester en vitesse…
J’arrive bien sur le bureau du live, je vois juste un SquashFS et aucune partition de montée…
Reste a voir si je peux passer par la… si oui, peut on utiliser n’importe qu’elle version de l’iso de Gparted ou faut il se référer a une compatible avec mes partitions ?

merci

C’est pareil, si le système live monte l’image ISO, il faut forcément monter la partition qui la contient…

Re,
Merci du suivi :slight_smile:
J"ai récupérer une clef usb, booter dessus et utiliser Gparted pour modifier le partitionnement…

gparted5

thx

C’est quand même moins acrobatique de procéder ainsi. Et puis une clé USB, ça sert toujours.

Moi j’aurais procédé différemment en exploitant l’initramfs comme système live minimal mais c’est justement parce que j’aime le côté minimaliste et un peu acrobatique :

  • création d’un initramfs incluant parted, e2fsck et resize2fs
  • redémarrage avec cet initramfs et interruption dans son shell
  • vérification et réduction du système de fichiers de la partition avec e2fsck et resize2fs
  • réduction de la partition avec parted
  • sortie du shell et reprise du démarrage normal.

Effectivement, mais je n’avais rien d’autre sous la main…
Avec un usb c’est tous de suite moin prise de tête…

La cela dépasse mes connaissance, mais intéressant…
Je suis aussi je pense un peut acrobate…
Je suis bien arrivé a mon objectif…

> $ cat /boot/grub/grub.cfg 
> .....
> ### BEGIN /etc/grub.d/30_os-prober ###
> menuentry 'MakuluLinux LinDoz x64 (2021) (on /dev/sda5)' --class makululinux --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-0dd6030a-ca34-46f7-9ce8-d661e81c20d9' {
> 	insmod part_msdos
> 	insmod ext2
> 	set root='hd0,msdos5'
> 	if [ x$feature_platform_search_hint = xy ]; then
> 	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  0dd6030a-ca34-46f7-9ce8-d661e81c20d9
> 	else
> 	  search --no-floppy --fs-uuid --set=root 0dd6030a-ca34-46f7-9ce8-d661e81c20d9
> 	fi
> 	linux /vmlinuz root=/dev/sda5
> 	initrd /initrd.img
> }
> submenu 'Advanced options for MakuluLinux LinDoz x64 (2021) (on /dev/sda5)' $menuentry_id_option 'osprober-gnulinux-advanced-0dd6030a-ca34-46f7-9ce8-d661e81c20d9' {
> 	menuentry 'MakuluLinux LinDoz x64 (2021) (on /dev/sda5)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/vmlinuz--0dd6030a-ca34-46f7-9ce8-d661e81c20d9' {
> 		insmod part_msdos
> 		insmod ext2
> 		set root='hd0,msdos5'
> 		if [ x$feature_platform_search_hint = xy ]; then
> 		  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  0dd6030a-ca34-46f7-9ce8-d661e81c20d9
> 		else
> 		  search --no-floppy --fs-uuid --set=root 0dd6030a-ca34-46f7-9ce8-d661e81c20d9
> 		fi
> 		linux /vmlinuz root=/dev/sda5
> 		initrd /initrd.img
> 
> menuentry 'antiX 19.3 (19.3) (on /dev/sda6)' --class antix --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-db5f9d01-2f44-44ee-8de0-e4322e295fca' {
> 	insmod part_msdos
> 	insmod ext2
> 	set root='hd0,msdos6'
> 	if [ x$feature_platform_search_hint = xy ]; then
> 	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6  db5f9d01-2f44-44ee-8de0-e4322e295fca
> 	else
> 	  search --no-floppy --fs-uuid --set=root db5f9d01-2f44-44ee-8de0-e4322e295fca
> 	fi
> 	linux /boot/vmlinuz-4.9.235-antix.1-486-smp root=/dev/sda6
> 	initrd /boot/initrd.img-4.9.235-antix.1-486-smp
> }
> submenu 'Advanced options for antiX 19.3 (19.3) (on /dev/sda6)' $menuentry_id_option 'osprober-gnulinux-advanced-db5f9d01-2f44-44ee-8de0-e4322e295fca' {
> 	menuentry 'antiX 19.3 (19.3) (on /dev/sda6)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-4.9.235-antix.1-486-smp--db5f9d01-2f44-44ee-8de0-e4322e295fca' {
> 		insmod part_msdos
> 		insmod ext2
> 		set root='hd0,msdos6'
> 		if [ x$feature_platform_search_hint = xy ]; then
> 		  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6  db5f9d01-2f44-44ee-8de0-e4322e295fca
> 		else
> 		  search --no-floppy --fs-uuid --set=root db5f9d01-2f44-44ee-8de0-e4322e295fca
> 		fi
> 		linux /boot/vmlinuz-4.9.235-antix.1-486-smp root=/dev/sda6
> 		initrd /boot/initrd.img-4.9.235-antix.1-486-smp
> 	}
> }
> 
> ### END /etc/grub.d/30_os-prober ###
> 
> ### BEGIN /etc/grub.d/30_uefi-firmware ###
> ### END /etc/grub.d/30_uefi-firmware ###
> 
> ### BEGIN /etc/grub.d/40_custom ###
> # This file provides an easy way to add custom menu entries.  Simply type the
> # menu entries you want to add after this comment.  Be careful not to change
> # the 'exec tail' line above.
> menuentry "bionicpup32 on /dev/sda1" {
> set root='(hd0,msdos1)'
> linux /bionicpup32/vmlinuz pdev1=sda1 psubdir=bionicpup32
> initrd /bionicpup32/initrd.gz
> }
> menuentry "Gparted live" {
> set isofile="/isos/gparted-live-1.2.0-1-i686.iso"
> loopback loop $isofile
> linux (loop)/live/vmlinuz boot=live config union=overlay username=user components noswap noeject  ip= net.ifnames=0 toram=filesystem.squashfs findiso=$isofile
> initrd (loop)/live/initrd.img
> }
> menuentry "MakuluLinux-LinDoz-1" {
> set root="hd1,msdos1"
> set isofile="/isos/MakuluLinux-LinDoz-x64-2021-03-11.iso"
> loopback loop (hd1,msdos1)$isofile
> linux (loop)/live/vmlinuz boot=live config splash findiso=$isofile keyboard-layouts=be locales=fr-FR.UTF-8 lang=fr 
> initrd (loop)/live/initrd.img
> }
> menuentry "MakuluLinux-LinDoz-2" {
> set isopath="/isos"
> set isoname="MakuluLinux-LinDoz-x64-2021-03-11.iso"
> set isofile="${isopath}/${isoname}"
> echo "Chargement de ${isoname}..."
> loopback loop $isofile
> linux (loop)/live/vmlinuz boot=live findiso=${isofile} config quiet splash
> initrd (loop)/live/initrd.img
> }
> ### END /etc/grub.d/40_custom ###
> 
> ### BEGIN /etc/grub.d/41_custom ###
> if [ -f  ${config_directory}/custom.cfg ]; then
>   source ${config_directory}/custom.cfg
> elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
>   source $prefix/custom.cfg;
> fi
> ### END /etc/grub.d/41_custom ###
> carl@mx:~
> $