Toutes les versions de SRM peuvent démarrer à partir d'un disque
SCSI et les versions destinées aux plates-formes récentes, comme les
Noname et AlphaStations, peuvent de plus démarrer depuis une
disquette. Le démarrage réseau via bootp
est également supporté.
Notez que les anciennes versions de SRM (notamment celles pour Jensen)
ne pouvaient pas démarrer depuis une disquette. Le démarrage
depuis un disque IDE n'est pas supporté.
Le démarrage de Linux avec SRM s'effectue en deux étapes : d'abord, SRM charge et transfère le controle à un chargeur secondaire. Ensuite, ce chargeur secondaire met en place l'environnement de Linux, lit l'image du noyau depuis un système de fichiers sur disque et donne la main à Linux.
A l'heure actuelle il existe deux chargeurs
secondaires pour Linux : le chargeur brut fourni
avec le noyau Linux et aboot
, distribué séparement. Ces deux
chargeurs sont décrits en détails ci-dessous.
SRM est ignorant des systèmes de fichiers et des partitions des disques. Il s'attend simplement à ce que le chargeur secondaire occupe un certain nombre de secteurs physiques consécutifs, commençant à une adresse donnée. L'information concernant la taille du chargeur secondaire et l'adresse de son premier secteur est stockée dans les 512 premiers octets. Plus précisement , l'entier long occupant l'adresse 480 contient la taille du chargeur secondaire et celui occupant l'adresse 488 donne le nombre de secteurs de décalage jusqu'au début du chargeur. Le premier secteur contient également un drapeau à l'adresse 496 qui vaut toujours 0 et une somme de contrôle à l'adresse 504. Cette somme de contrôle est simplement la somme des 63 premiers entiers longs du premier secteur.
Si cette somme est correcte, SRM continue et lit le nombre de
secteurs indiqué par la taille en commençant par celui indiqué
dans le champ numéro de secteur et les place en mémoire
virtuelle à l'adresse 0x20000000
. Si la lecture se termine
avec succés, SRM effectue un saut à l'adresse 0x20000000
.