Outils pour utilisateurs

Outils du site


issue121:tutoriel2

Installing Ubuntu is not a complex process these days. Downloading an ISO image, and alternatively burning a DVD or creating a bootable USB to launch a LiveCD that can then be installed, is a well-documented process. Looking back at earlier times, this was not always the case. Many of us can still remember when the Knoppix CD was the first GNU/Linux distribution that could actually launch a live environment, and it was still some time after that until the first installable LiveCD images came out. So it can be said that much progress has been made on the ease-of-use of installation media. However, we are never satisfied. Having to burn the image to a CD or DVD just to test out a new distribution soon lost its attractiveness. Using an USB pendrive was a move in the good direction, but nowadays one does not always have a spare pendrive lying around. I tend to lose mine, and think I may possibly not be the only one. Most administrators of large networks soon learn to make an ISO image available to boot over the network using PXE, but this may not always be possible, or even attractive, for more casual users, since it does mean messing around with your local DHCP server.

De nos jours, l'installation d'Ubuntu n'est pas un processus complexe. Le téléchargement d'une image ISO, puis, soit le gravage d'un DVD, soit la création d'une clé USB bootable, pour lancer un LiveCD qui peut ensuite être installé, est un enchaînement de tâches bien documenté. En regardant en arrière vers des temps plus anciens, ça n'a pas toujours été le cas. Beaucoup d'entre nous peuvent encore se rappeler quand Knoppix CD était la première distribution GNU/Linux qui pouvait être lancée dans un environnement live et les premières images LiveCD installables n'arrivaient que pas mal de temps après. Ainsi, on peut dire que beaucoup de progrès ont été réalisés dans la facilité d'utilisation des médias d'installation.

Cependant, nous ne sommes jamais satisfaits. Devoir graver l'image sur un CD ou DVD juste pour essayer une nouvelle distribution a rapidement perdu de son attrait. L'utilisation d'une clé USB était un pas dans la bonne direction, mais, actuellement, on n'a pas toujours une clé USB inutilisée en rab. J'ai tendance à perdre les miennes et je pense qu'il est possible que je ne sois pas le seul. La plupart des administrateurs de grands réseaux apprennent vite à disposer d'une image ISO pour démarrer par le réseau en utilisant PXE, mais ce n'est pas toujours possible, ou même attirant, pour des utilisateurs lambda, car cela veut dire du bricolage avec le serveur DHCP local.

So, what if we went one step further and did away completely with an installation medium? The scenario is as follows: suppose we have a functioning Ubuntu installation on a computer, at a certain version of the distribution. We then download a new version as an ISO file to our hard drive, and wish to install the new version over the existing one, without using any other local drives, an optical reader, or anything else connected via USB. It’s just us, and our computer’s single internal hard drive. A point to be noted is that we will be needing sufficient RAM to hold most of the ISO image as well as running the Live CD environment, so our computer will be best off with at least the 4 GigaBytes memory size that has been standard for laptops for some time now. Read on, dear reader, and find out how. Though, be warned: things will likely get fairly geeky at times. Do not try this on a computer you would not be happy to format completely, and make a backup of any user data before proceeding. Qapla'!

Aussi, pourquoi ne pas franchir un pas de plus et le faire totalement sans média d'installation ? Le scénario est le suivant : supposez que nous avons une installation Ubuntu fonctionnelle sur un ordinateur, dans une certaine version de la distribution. Ensuite, nous téléchargeons une nouvelle version sous forme d'image ISO sur notre disque dur, que nous souhaitons installer par-dessus l'actuelle, sans utiliser un autre disque local, un lecteur optique ou quelque chose d'autre connecté par USB. Juste nous et notre unique disque dur interne d'ordinateur.

Un point à noter, c'est que nous aurons besoin d'une RAM suffisante pour contenir la majorité de notre image ISO tout en tournant dans un environnement de Live CD ; aussi, notre ordinateur sera au mieux avec au moins 4 gigaoctets de taille mémoire, ce qui est standard pour les portables depuis quelque temps maintenant.

Lisez la suite, cher lecteur, et découvrez comment. Attention, cependant : certaines choses pourraient devenir assez « geeky » (techniques) par moments. N'essayez pas ceci sur un ordinateur que vous seriez furieux de devoir reformater entièrement et faites une sauvegarde de toutes les données utilisateur avant de commencer. Hop là !

I started out with a very slightly tweaked installation of Ubuntu 14.04. Partitioning of the hard drive was left to the Ubuntu installer’s default settings, and as a result we ended up with only two partitions: /dev/sda1 (ext4 file format) containing both the operating system and user data; /dev/sda2 as a swap space. The only main changes done to the system configuration are user preferences such as the WiFi network, Firefox browser history, and the desktop background. It would be nice to retain these, as well as any user files on the hard drive. I then downloaded a more recent version of Ubuntu, ISO file: “ubuntu-16.10-desktop-amd64.iso”, to directory /home/alan/Downloads. (That version is no longer current, but the procedure remains the same.)

Au départ, j'avais une installation légèrement ajustée d'Ubuntu 14.04. Le partitionnement du disque dur est resté avec les valeurs par défaut de l'installeur d'Ubuntu et, comme résultat, nous nous sommes retrouvés avec deux partitions seulement :

/dev/sda1 (format de fichiers ext4) contenant le système d'exploitation et les données utilisateur ;

/dev/sda2 comme espace de swap.

Les seuls changements importants effectués au système d'exploitation sont des préférences utilisateur comme le réseau WiFi, l'historique du navigateur Firefox et le fond d'écran du bureau. Ce serait bien de conserver celles-ci, ainsi que tous les fichiers utilisateurs, sur le disque dur.

j'ai ensuite téléchargé une version d'Ubuntu plus récente, en fichier ISO : « ubuntu-16.10-desktop-amd64.iso », dans le répertoire /home/alan/Downloads. (Cette version n'est plus d'actualité, mais la procédure reste la même.)

Booting from an ISO image The first major challenge in this project is to boot from the ISO file image on our hard drive. Luckily, GRUB is well able to do this - with some persuading from the command-line. However, when a single Ubuntu system is installed on a drive, then, when booting, the default GRUB configuration times out and immediately launches the only operating system it sees. We will need some time to enter GRUB command-line mode. To solve this problem, edit the default configuration file using: sudo gedit /etc/default/grub commenting out or erasing the line that starts with GRUB_HIDDEN_TIMEOUT . This configuration then needs to be put in place with command: sudo update-grub We can then reboot. Once the GRUB menu comes up, hit key ‘c’ to obtain a command-line that starts with the ‘grub>’ prompt.

Démarrer sur l'image ISO

La première grande difficulté de ce projet est de démarrer sur le fichier de l'image ISO sur notre disque dur. Heureusement, GRUB est bien capable de ça - avec un peu de persuasion en ligne de commande. Cependant, quand un seul système Ubuntu est installé sur un disque, au démarrage, la configuration GRUB par défaut n'a pas de délai et le seul système d'exploitation qu'il voit est lancé immédiatement. Nous aurons besoin d'un peu de temps pour entrer dans le mode en ligne de commande de GRUB. Pour résoudre ce problème, modifiez le fichier de configuration par défaut en utilisant :

sudo gedit /etc/default/grub

en commentant ou effaçant la ligne qui commence par GRUB_HIDDEN_TIMEOUT. Ensuite, cette configuration doit être mise en place avec la commande :

sudo update-grub

Nous pouvons alors redémarrer. Une fois le menu GRUB affiché, appuyez sur la touche « c » pour obtenir une ligne de commande qui commence par l'invite « grub> ».

We now need to tell GRUB to use the first partition of our hard drive as its boot drive. We then tell it to identify the ISO filename in variable $isofile. We create a loopback drive with the filename, which basically sets up the file as a virtual disk drive. We then load the Linux kernel and the initial RAM disk. So, successively: set root=(hd0,msdos1) set isofile=/home/alan/Downloads/ubuntu-16.10-desktop-amd64.iso loopback loop (hd0,msdos1)$isofile linux (loop)/casper/vmlinuz.efi ro boot=casper iso-scan/filename=$isofile toram initrd (loop)/casper/initrd.lz boot Naturally, these commands may need to be tailored to suit your specific setup, both as regards the partition on which the ISO file is located, and concerning the filename and directory. Please take extra care to append parameter ‘toram’ to the line loading the kernel - this shall be explained further on.

Nous devons maintenant dire à GRUB d'utiliser la première partition de notre disque dur comme disque de démarrage. Ensuite, nous lui disons d'identifier le nom de fichier de l'image ISO dans la variable $isofile. Nous créons un disque avec loopback et le nom du fichier, qui, essentiellement, définit le fichier comme un disque virtuel. Puis, nous chargeons le noyau Linux et le disque initial en RAM. Ainsi, successivement :

set root=(hd0,msdos1)

set isofile=/home/alan/Downloads/ubuntu-16.10-desktop-amd64.iso

loopback loop (hd0,msdos1)$isofile

linux (loop)/casper/vmlinuz.efi ro boot=casper iso-scan/filename=$isofile toram

initrd (loop)/casper/initrd.lz

boot

Naturellement, ces commandes doivent être adaptées pour convenir à votre paramétrage spécifique, que ce soit pour la partition sur laquelle le fichier ISO est situé, ou pour le nom de fichier et le répertoire. Faites bien attention d'ajouter le paramètre « toram » à la ligne chargeant le noyau, je l'expliquerai plus loin.

We should boot successfully into the LiveCD environment. Depending on the speed of our hard drive, boot times should compare favourably with that of booting from a USB pendrive and, obviously, without the hassle of actually creating the USB drive in the first place. If all we need is to test the new distribution, then this is it. We can use the Live CD environment exactly as we would if we had booted from a DVD or a pendrive, and without altering the configuration of our hard drive. But, since we wish to install the new system onto our hard drive, some tweaks need to be applied. The main question that needs to be addressed is the fact that the Unity installer, Ubiquity, does not like to modify a partition on a disk drive that it has booted from - and our ISO image is contained within the same partition /dev/sda1 which we will now be modifying.

Nous devrions démarrer avec succès dans un environnement de Live CD. Suivant la vitesse de notre disque dur, la comparaison des temps de démarrage avec ceux d'un démarrage sur clé USB est favorable et, évidemment, sans s'embêter à devoir d'abord réellement créer la clé USB.

Si notre seul besoin est de tester la nouvelle distribution, nous y sommes. Nous pouvons utiliser l'environnement de Live CD exactement comme nous le ferions si nous avions démarré sur un DVD ou une clé, et sans altérer la configuration de notre disque dur.

Mais, comme nous souhaitons installer le nouveau système sur notre disque dur, quelques ajustements sont nécessaires. La question principale à résoudre est que l'installeur d'Unity, Ubiquity, n'aime pas modifier une partition d'un disque sur lequel il a démarré, et notre image ISO est placée dans la même partition /dev/sda1 que nous allons modifier maintenant.

Now, the parameter ‘toram’ appended to the kernel in GRUB comes to the fore. This parameter told the kernel (through the Casper boot hook) to load the complete ISO file into RAM during boot. It is for this reason that we need a bit more RAM available to us than would normally be required to boot a Live CD. The time taken to load the file into RAM also explains why the boot process may seem slightly slower than expected if our computer has a fast SSD hard drive. However, even though the ISO file’s contents have been loaded into RAM, the file itself is still left mounted on the directory /isodevice. This needs to be unmounted with the command: sudo umount /isodevice before proceeding. We can check that no other disks have been left mounted with the command: mount | grep sd

Maintenant, le paramètre « toram » ajouté au noyau dans GRUB vient sur le devant de la scène. Ce paramètre dit au noyau (par l'intermédiaire de l'accrochage du boot Casper) de charger tout le fichier ISO dans la RAM pendant le démarrage. C'est pour cette raison que nous avons besoin d'un peu plus de RAM disponible que ce qui est normalement nécessaire lors d'un démarrage sur un Live CD. Le temps passé à charger le fichier en RAM explique aussi pourquoi le processus de démarrage peut semble légèrement plus lent qu'avec notre ordinateur équipé d'un disque rapide SSD.

Cependant, même si le contenu du fichier ISO a été chargé en RAM, le fichier lui-même est encore monté dans le répertoire /isodevice. Il est nécessaire de le démonter avec la commande :

sudo umount /isodevice

avant de poursuivre. Nous pouvons vérifier qu'aucun autre disque n'est resté monté avec la commande :

mount | grep sd

We should see one single line reporting on gvtsd-fuse, and nothing more. Once this is the case, we can proceed with system installation in the usual way. The one caveat is concerning disk partitioning. To retain user files, it is best to select ‘Something else’ and partition the hard disk manually. In my (very simple) situation, I will choose /dev/sda1, use it as an extended 4 file system mounted on /, but NOT format it. In essence, I am retaining the very same partitioning scheme used before. Since we are not formatting the partition destined for installing the operating system, the installer will complain about this and tell us that “Directories containing system files (/etc, /lib, /usr, /var, …) will be deleted during the install.” This is fine with us, since user data is contained within /home. If I were using a separate /home partition, I could tell the installer to mount it on /home, but obviously not to format it either. In either case, using the same user accounts’ names will enable us to find our files back in the same places and accessible on the new system.

Nous ne devrions voir qu'une seule ligne faisant état de gvtsd-fuse, et rien d'autre. Une fois que c'est le cas, nous pouvons passer à l'installation du système comme d'habitude. Le seul avertissement concerne le partitionnement du disque dur. Pour conserver les fichiers utilisateur, il est préférable de choisir « Autre chose » et de partitionner le disque dur manuellement. Dans ma situation (très simple), je choisirai /dev/sda1, pour l'utiliser en système de fichiers EXT4 monté sur /, mais SANS le formater. En substance, je conserve le même schéma de partitionnement que celui utilisé avant.

Comme nous ne formatons pas la partition destinée à l'installation du système d'exploitation, l'installeur va s'en plaindre et nous dire que « les répertoires contenant des fichiers système (/etc, /lib, /usr, /var,…) seront effacés pendant l'installation. » Pas de problème pour nous, car les données utilisateurs sont contenues dans /home.

Si j'avais utilisé une partition /home séparée, j'aurais pu dire à l'installeur de la monter sur /home, mais, bien sûr, de ne pas la formater non plus. Dans les deux cas, l'utilisation des mêmes noms de comptes utilisateurs nous permettra de retrouver nos fichiers aux mêmes endroits et accessibles avec le nouveau système.

We can proceed with installation and, once finished, reboot as usual. As can be seen, all our user preferences and files - such as the desktop background - have been carried over. For whatever reason, the only element that was not preserved was the configuration for WiFi, which needed to be created anew. The final result of this manipulation is that we have been able to reformat a computer running Ubuntu 14.04, with Ubuntu 16.10. This has been done by simply downloading the ISO file for the new version of the distribution, and using a combination of GRUB and Casper to boot it into RAM, without using any disks aside from our internal hard drive. Though some care must be exerted, the procedure should be accessible for many advanced users. For others, just being able to boot into a Live CD without needing to prepare an USB pendrive may be something of a time-saver when testing out several different options.

Nous pouvons procéder à l'installation et, une fois terminée, redémarrer comme d'habitude. Comme vous pouvez le voir, toutes nos préférences et fichiers d'utilisateur - tel que le fond d'écran du bureau - ont été transférés. Pour je ne sais quelle raison, le seul élément qui n'a pas été conservé a été la configuration du WiFi, qui a dû être recréée.

Le résultat final de cette manipulation est que nous avons été capable de reformater un ordinateur, tournant sous Ubuntu 14.04, avec Ubuntu 16.10. Ça a été fait simplement en téléchargeant le fichier ISO de la nouvelle version de la distribution et en utilisant une combinaison de GRUB et Casper pour le démarrer en RAM, sans utiliser aucun disque autre que notre disque dur interne. Bien qu'il faille procéder avec beaucoup d'attention, la procédure semble être accessible à beaucoup d'utilisateurs expérimentés. Pour les autres, le simple fait d'être capable de démarrer sur un Live CD sans avoir besoin de préparer une clé USB peut être un certain gain de temps lors des tests de plusieurs options différentes.

issue121/tutoriel2.txt · Dernière modification : 2017/06/07 16:01 de andre_domenech