Selon Wikipedia , GRUB a été publié en 1995. À ce stade, Linux et xBSD existaient depuis plusieurs années. Je sais que les premières versions d'Unix étaient liées au matériel dans les années 70 et 80, mais Linux et xBSD étaient libres de distribuer et d'installer. Ce qui pose la question de savoir comment démarrer Linux à l'époque? Les distributions étaient-elles livrées avec leurs propres implémentations de chargeurs de démarrage?
boot-loader
history
Sergiy Kolodyazhnyy
la source
la source
biosboot(8)
.biosboot
deux architectures, i386 et amd64. Cela signifie-t-il qu'OpenBSD devait spécifiquement cibler les architectures au lieu d'en avoir un, un outil unificateur?Réponses:
La première distribution Linux que j'ai utilisée dans les années 90 (
Slackware 3.0
IIRC) utilisait LILO comme chargeur de démarrage. Et de nombreuses distributions ont été utiliséesLILO
pendant des années, même lorsqu'ilGRUB
devenait le chargeur de démarrage "par défaut".De plus, dans les premières années de Linux, il était courant de démarrer Linux à partir d'un autre système d'exploitation (c'est-à-dire DOS ou Windows) au lieu de compter sur un chargeur de démarrage / double démarrage. Par exemple, il y avait loadlin .
N'oubliez pas Syslinux , qui est un chargeur de démarrage plus simple souvent utilisé pour les distributions d'installation / récupération USB auto-amorçables. Ou Isolinux (du même projet) utilisé par de nombreuses distributions "Live".
Gardez à l'esprit qu'aujourd'hui
GRUB
peut être utilisé pour charger de nombreux systèmes d'exploitation, alors qu'ilLILO
était plus limité, et ciblait spécifiquement Linux (c'est-à-dire LInux LOader), avec une certaine prise en charge du double démarrage vers Windows.GRUB
est très utile pour le démarrage à double / multiple en raison de ses nombreuses options configurables, des fonctions de script, etc ...Si vous voulez un seul système d' exploitation sur votre machine « any » (ie quel que soit bootloader est la valeur par défaut pour votre distribution Linux / BSD) devrait être assez.
la source
other=/dev/hda1
avectable=/dev/hda
àlilo.conf
, et lilo ne ferait que transférer le contrôle au secteur de démarrage à hda1, sachant que la table de partition serait à hda.LILO était la norme de facto pour le démarrage de Linux sur PC avant Grub, à un stade très précoce (MCC, l'une des premières distributions Linux, l'a utilisé). Divers autres chargeurs de démarrage ont été utilisés simultanément. Loadlin était assez courant; il a démarré Linux à partir de DOS et a même été utilisé dans certaines configurations avec
umsdos
pour héberger un environnement Linux dans un système de fichiers DOS ... Les utilisateurs de Linux ont conservé une bonne paire de disquettes «boot et root», l'une contenant le noyau, l'autre un système de fichiers racine de base à des fins de sauvetage.Il y avait plusieurs façons d'utiliser les chargeurs de démarrage d'autres systèmes d'exploitation pour démarrer Linux également; par exemple, le gestionnaire de démarrage d'OS / 2 ou le NTLDR de Windows NT.
D'autres systèmes avaient leurs propres chargeurs de démarrage:
Même de nos jours, Grub n'est pas le seul chargeur de démarrage que vous verrez. Bien que le démarrage du noyau directement à partir d'une disquette ne soit plus très utile (je n'ai pas vérifié s'il est toujours possible, en supposant que vous pouvez créer un noyau suffisamment petit pour tenir sur une disquette), il peut démarrer directement à partir d'EFI (qui est en fait son propre petit système d'exploitation conçu pour charger d'autres systèmes d'exploitation, tout comme Grub). Sur de nombreux petits systèmes (systèmes embarqués, ordinateurs à carte unique ...), vous trouverez U-Boot . (Et il y a aussi une couche EFI pour U-Boot .)
la source
Jusqu'au milieu des noyaux 2.6, le noyau x86 était directement amorçable s'il était copié sur une disquette (comme s'il s'agissait d'une image disque).
C'était, en fait, la façon originale de démarrer Linux.
Si vous regardez l'en-tête d'un noyau x86 aujourd'hui, vous voyez un message d'erreur indiquant que le démarrage à partir de disquettes de ce type ne fonctionne plus.
la source
J'ai commencé avec Linux à la fin des années 90 et comme mentionné,
lilo
c'était la valeur par défaut. Si vous vouliez effectuer un double amorçage avec un système DOS, vous pourriez faire un amorçage nu sans charger des éléments dans HIMEM ou charger des pilotes de CD, etc. et utiliserloadlin
. Pour le double démarrage de Win95, vous pouvez d'abord rendre le disque amorçable avec DOS, puis installer '95, et le chargeur de démarrage de '95 vous permettrait de démarrer le noyau DOS, puis vous pourriez utiliserloadlin
.Pour un double démarrage avec NT4, l'astuce consistait à écrire LILO sur la
/
partition, puis à supprimer les 512 premiers octets à l'aide dedd
(dd if=/dev/sda2 of=/path/to/file bs=512 count=1
) et à placer le fichier résultant où lentldr
voir et vous pouvez l'utiliser à partir du chargeur de démarrage de WinNT. Le problème avec cela est que lorsque vous avez mis à niveau votre noyau, vous devez vous rappeler de répéter toutes les étapes avant de redémarrer, sinon vous auriez des problèmes pour revenir dans le système Linux. Le même processus a fonctionné avec Win2k.Avec LILO, chaque fois que le noyau était mis à jour, vous devez vous rappeler de mettre à jour LILO.
À
loadlin
chaque fois que le noyau était mis à jour, vous deviez vous rappeler de copier le noyau sur la partition DOS.Une autre option suggérée dans d'autres réponses était d'écrire le noyau directement sur une disquette en utilisant
dd if=/path/to/vmlinuz of=/dev/fd0
MAIS le périphérique racine devait être défini correctement dans le noyau, soit au moment de la compilation, soit en utilisant l'rdev
utilitaire.Quand il
GRUB
est arrivé, il y avait beaucoup de joie parce que vous n'aviez plus à vous rappeler de mettre à jour LILO, ou de mettre à jour LILO et de supprimer les informations de démarrage, etc. Info...la source
make install
s'exécuterait/sbin/lilo
, vous n'avez donc pas vraiment eu à mettre à jour quoi que ce soit à la main (et cela peut toujours être le cas, si vous avezlilo
installé). C'est peut-être une question d'opinion, mais je ne me souviens pas de beaucoup de réjouissancesgrub
, au contraire. Etlilo
(au moins sa version de 1999) pourrait très bien double dual windows, pas besoin deloadlin
.Et avant LILO et GRUB, vous deviez le lancer à partir de la ligne de commande avec une sorte d'utilitaire de démarrage personnalisé.
Par exemple, l'Amiga avait Linux disponible. Vous avez dû utiliser un utilitaire de ligne de commande appelé amiboot pour charger l'ELF du noyau en mémoire et y accéder.
Voici une vidéo d'une personne utilisant amiboot depuis la ligne de commande pour lancer linux sur un Amiga 600 . Son script StartInstall appelle l'exécutable amiboot. Vous pouvez regarder amiboot configurer la mémoire, déterminer l'adresse de chargement souhaitée et passer les paramètres au noyau vers 0:55.
la source