[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re : Re: Copier un système (Debian) sur un disque plus grand.



Merci pour votre réponse,
Petite précision, c'est un ordinateur portable avec un « disque » nvme, qui ne peut en contenir qu’un seul.

Je pense à une solution intermédiaire inspirée de votre piste de réflexion… 

- Sauvegarder /etc et les données non synthème(telles que /home, etc)...
- Sauvegarder la liste des paquets installés :

aptitude -F "%p" search ~i\!~M > paquets.list

Comme on me l’a déjà indiqué sur cette liste (voir « Liste des paquets installés sur mon ordi »).

- Partitionner le nouveau disque, y faire une installation de base du système (Installation par le réseau à partir d'un CD minimal)

- Réinstaller les mêmes paquets sur le nouveau système.
apt install $(<paquets.list).

- Restaurer certaines configs de /etc et toutes les données non système et de config de /home...


Par contre, j’aimerais peaufiner la liste des paquets actuellement installés sur mon système :
aptitude -F "%p" search ~i\!~M > paquets.list

Va me sélectionner les paquets qui n’ont PAS (!~M)  été automatiquement installés.
Cf.
https://www.debian.org/doc/manuals/aptitude/ch02s04s05.fr.html#searchAutomatic

Donc ceux explicitement nommés dans une commande :
apt install nomPaquetA nomPaquetB nomPaquetC nomPaquetD nomPaquetE 

Imaginons que le paquet  nomPaquetC aurait de toute façon installé  nomPaquetD nomPaquetE en tant que dépendance de  nomPaquetC, 

comment exclure de la liste :  nomPaquetD nomPaquetE ?

Je consulte la doc ici :
https://www.debian.org/doc/manuals/aptitude/ch02s04s05.fr.html#tableSearchTermQuickGuide

Quand on installe un paquet qui était déjà installé automatiquement  en tant que dépendance d’un autre, apt répond que le package est marqué comme installé manuellement.

Et j’ai l’impression que :
apt autoremove ne pourra plus fonctionner car si sur le système actuel, je fais :

aptitude -F "%p" search ~i\!~M > paquets.list

Et que sur la nouvelle installation je fais :
apt install $(<paquets.list)

Tous les paquets du système seront marqués comme  installé manuellement, donc plus de marquage pour le bon fonctionnement de :
apt autoremove

A moins de repasser tous les paquets en auto avec :
apt-mark auto package_name

Raison pour laquelle, il me semble utile que la liste «  paquets.list » ne comporte aucun paquet installé  automatiquement afin de laisser le système gérer l’installation des paquets en dépendance.
Je ne sais pas si j’ai été clair… ;-)

En résumé comment supprimer de la liste les paquets qui auraient été installé automatiquement ?

Merci d'avance,

Benoît






Envoyé avec la messagerie sécurisée Proton Mail.

Le vendredi 15 décembre 2023 à 12:55, Basile Starynkevitch <basile@starynkevitch.net> a écrit :


> On 12/15/23 08:48, benoit wrote:
> 
> > Bonjour,
> > 
> > Je recherche une méthode sûre et facile et un logiciel libre pour
> > copier un système (Debian) sur un disque plus grand.
> 
> 
> Je comprends la question de la manière suivante:
> 
> 
> Vous disposez d'un PC (probablement un ordinateur fixe, pas un portable)
> sur lequel tourne une Debian. Cet ordinateur a deux disques, qu'on
> suppose ici être /dev/sda pour le plus petit (disque source) et /dev/sdb
> pour le plus gros (disque cible). Le BIOS ou UEFI voit bien les deux
> disques. Vous êtes capable (si besoin était) d'ouvrir le capot de
> l'ordinateur et de débrancher (temporairement) chacun de ces deux
> disques (par exemple leur câble SATA). Vous avez lu la notice du BIOS ou
> UEFI ou de la carte mère. Vous avez confiance dans votre alimentation
> électrique (pas de coupure ou d'orage prévu dans la journée), ou bien
> vous disposez d'un onduleur et d'une clef USB sur laquelle vous pouvez
> télécharger un Debian netinstall. Vous disposez en plus de quelques
> clefs USB en bon état (préférentiellement neuves) d'au moins 8Go (et
> plutôt plus) chacune.
> 
> Il reste de la place (quelques gigaoctets de libre dans une partition
> montée donc dans un système de fichier) sur l'ancien disque (sur
> /dev/sda). À vérifier avec la commande "/usr/bin/df -h".
> 
> Vous connaissez l'usage de la ligne de commande, le mot de passe root,
> et cet ordinateur est connecté à Internet de façon fiable.
> 
> Systématiquement, vous allez explicitement utiliser la commande
> "/usr/bin/sync" ou "/bin/sync" qui vidange les tampons du noyau sur les
> disques. Dans certains cas, elle prend une dizaine de secondes. Il faut
> la faire très souvent.
> 
> Vous avez préalablement sauvegardé les données les plus précieuses (ou
> les plus chères) de votre ordinateur. (précaution contre les
> catastrophes ou les fautes de frappe), peut être sur un serveur externe
> à distance ou sur des clefs USB neuves ou sur un disque externe. Vous
> seul savez quelles sont vos données les plus importantes pour vous. Les
> commandes à connaître sont /usr/bin/tar et /usr/bin/afio et
> /usr/bin/find. Essayez bien sûr "/usr/bin/tar --help" etc.
> 
> 
> 
> La première étape est simplement de noter en totalité (sur un cahier, ou
> de prendre en photo avec son smartphone) la sortie des commandes
> "/sbin/fdisk -l /dev/sda" et "/sbin/fdisk -l /dev/sdb" et le contenu du
> fichier /etc/fstab (donc la sortie de "/bin/cat /etc/fstab"); si vous
> disposez d'une imprimante, imprimez ces sorties de fdisk et votre
> (ancien) fichier /etc/fstab ; il est très utile de noter la sortie de
> "/sbin/blkid" sur chacune des partitions visibles par ces commandes. Si
> on dispose de clef USB supplémentaire sauvegarder ces sorties sur une
> clef, ainsi que votre ancien répertoire /etc .... et peut-être la liste
> des paquets installés par "/usr/bin/dpkg -l"
> 
> 
> 
> =================
> 
> Ensuite, vous définissez sur papier un schéma de partitionnement du
> disque cible. A minima en respectant les contraintes suivantes:
> 
> 1. il faut une petite et première partition de boot réservée de quelques
> mégaoctets réservée au BIOS / UEFI. Donc /dev/sdb1 - de nos jours, soyez
> généreux et prévoyez par exemple un demi gigaoctet (qui seront
> "gaspillées").
> 
> 2. Je recommande une partition pour la racine et les logiciels systèmes
> (/sbin, /bin/, /usr/, /lib/, ....) donc /dev/sdb2 - soyez généreux et
> prévoyez large (plus grand que sur le vieux disque /dev/sda). Peut-être
> 300Go (mais on peut avoir bien moins, au minimum 60Go).
> 
> 3. Je recommande une partition d'échange (swap) en /dev/sdb3. Prévoyez
> large, en particulier pour une machine récente que vous envisagerez
> d'améliorer dans un an ou deux par l'achat de barrettes de RAM
> supplémentaires, prévoyez une partition plus grande que la mémoire RAM
> que vous espérez avoir dans deux ans. La commande /usr/bin/free donne la
> mémoire physique actuelle et la taille actuelle de votre zone de swap.
> Une heuristique serait de prévoir pour la partition de swap 50% de plus
> que la mémoire RAM totale envisagée dans deux ans.
> 
> 4. Selon l'usage de la machine une ou quelques partitions de données. A
> minima une partition pour le futur /home en /dev/sdb4. Il existe des cas
> où avoir deux partitions de données est utile voir nécessaire. Par
> exemple pour la compilation de nombreux logiciels sources, ou pour le
> traitement vidéo ou photo, la sauvegarde périodique (par crontab) de
> fichiers importants. Il existe des cas où avoir une seule partition de
> donnée est bénéfique.
> 
> ==========
> 
> La deuxième étape est de se fabriquer ou se procurer une clef USB
> bootable d'installation Debian netinstall. Par exemple en faisant
> 
> wget -v
> https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-12.4.0-amd64-netinst.iso
> 
> pour obtenir une image ISO d'environ 630Moctets. Ensuite, insérer une
> clef USB neuve, la détecter par la commande /usr/bin/dmesg et
> /usr/bin/df et notez sur papier quelle est cette clef USB et comment
> a-t-elle été montée automatiquement. Je la suppose ici être /dev/sdd. Il
> faut d'abord la démonter, par exemple par "/usr/bin/umount /dev/sdd1" et
> ainsi de suite. Une fois que la clef a été démontée, on peut en faire
> une clef bootable d'installation par la commande "/usr/bin/dd
> if=debian-12.4.0-amd64-netinst.iso of=/dev/sdd oflag=sync bs=64
> status=progress" qui peut prendre plusieurs dizaines de minutes. Je
> conseille un /usr/bin/sync .... (en principe inutile).
> 
> On arrête proprement le PC Debian, par exemple par "/sbin/poweroff"
> 
> Il est alors temps de se restaurer (un café, un repas). Ensuite on
> débranche le secteur, on ouvre le capot de la machine, et on débranche
> les câbles sur le vieux disque dur /dev/sda.
> 
> Après avoir fermé le capot et rebranché le câble secteur, on redémarre
> la machine avec la clef USB d'installation. On installe une Debian
> minimale (ou confortable) sur le nouveau disque cible /dev/sdb (qui, vu
> de la clef Debian, s'appelle autrement!). ça peut prendre des heures.
> Pour reconnaître la partition nouvelle, on y écrit un fichier, par
> exemple par une commande "/usr/bin/date > /nouveau-disque" suivi
> 
> indispensablement de "/bin/sync".
> 
> On arrête proprement la nouvelle Debian. On vérifie explicitement
> (plutôt deux fois qu'une) que la nouvelle Debian démarre et s'arrête
> convenablement. Et que fdisk y détecte bien le nouveau disque.
> 
> On débranche le câble secteur. On ouvre le capot et on rebranche les
> câbles de l'ancien disque /dev/sda. On redémarre.
> 
> Ayant préalablement lu la notice du PC ou de la carte mère ou de son
> BIOS, on paramètre le BIOS ou UEFI pour booter sur le nouveau disque
> /dev/sdb ... (qui s'appelle autrement dans le BIOS ou UEFI). On vérifie
> que /nouveau-disque existe et contient une date. Sinon, on reboote avec
> d'autres paramètres BIOS/UEFI.
> 
> On monte les partitions de données du vieux disque source.
> 
> > J’ai cru comprendre qu’un clonage avec dd ou Clonezilla, va crée des
> > partitions de même tailles du disque source ver le disque cible.
> 
> 
> Mais ce ne peut pas être l'objectif puisque le nouveau disque cible (ici
> /dev/sdb) est plus grand que l'ancien disque source (ici /dev/sda).
> 
> > Les partitions vont laisser une partie du disque cible non
> > partitionné, qu’il faudra ensuite déplacer et redimensionner avec les
> > données. Le peu d’expérience que j’ai de cette étape avec Gparted,
> > c’est que ça prend des heures et que ça n’a pas toujours fonctionné.
> 
> 
> Oui, ça prend des heures, et oui, parfois ça échoue.
> 
> > Il me semble que le plus simple serait de faire l’inverse : créer la
> > table de partition sur le disque cible avec cfdisk.
> > 
> > Mais après je fais comment pour copier les secteurs d’amorçage, la
> > partition EFI, les droits d’accès, les liens symboliques etc ?
> 
> 
> De mon point de vue on ne recopie que les partitions de données
> utilisateurs (/home etc... par deux tar en tube, peut-être tar cf -
> /home | tar xf - /home-nouveau) et on prévoit de galérer pendant
> plusieurs jours (à réinstaller des paquets utiles, peaufiner des
> fichiers de configurations, etc).
> 
> Une fois que les données chères sont copiés, on éteint l'ordinateur, on
> démonte (au tournevis) le vieux disque. On vérifie à plusieurs reprises
> que toutes les données importantes sont présentes. Selon la
> confidentialité des données dessus (sur le vieux disque), il peut-être
> nécessaire de le casser physiquement au marteau.
> 
> Le plus important est de prendre le temps (plusieurs jours), d'être
> systématique et de noter sur un cahier toutes les étapes faites et à faire.
> 
> 
> Bon courage et bonnes fêtes.
> 
> NB: je cherche des partenaires intéressés par le projet logiciel libre
> RefPerSys (moteur d'inférences) sur https://github.com/RefPerSys/RefPerSys/
> 
> --
> Basile Starynkevitch
> basile@starynkevitch.net
> 
> (only mine opinions / les opinions sont miennes uniquement)
> 92340 Bourg-la-Reine, France
> web page: starynkevitch.net/Basile/


Reply to: