Démarrage longué


#1

Salut à tous,
je trouve que Linux un défaut majeur: ça lenteur au démarrage.
Effectivement, si lon compare sur un même PC le démarrage de windows à Linux, le célèbrissime syteme d’exploitation démarre en très peu de temps alors que l’on a le temps d’aller boire une bière en attendant que notre pengouin préféré soit en place.

Je me demandais donc si il était possible de doper Linux pour qu’il est le maillot Jaune dès son démarrage.

Ce serait très interressant sur les ordinateurs portables, lesquels, on ne laisse pas allumé toute la journée.


#2

sur portable, tu as la possibilité normalement de faire du “suspend to disk” qui te permet de swapper ton état memoire et de reprendre (réactiver) sans délai (autre que le rechargement de l’image memoire).
C’est (un peu) la methode utilisée par XP pour accèlérer son boot: j’ai cru comprendre qu’il rechargait une image memoire au démarrage.
Mais je ne sais plus trop comment on fait pour mettre ca en place. Je sais qu’il y a des options à activer dans le noyau, et un peu de config de l’acpi pour déclencher cette mise en veille profonde, par exemple en cas de fermeture du capot du portable, mais je ne sais plus trop ou…
sinon, reste la configuration fine: finalement, linux, c’est comme l’autre; qu’est ce qu’on traine comme crasse au démarrage. La différence, avec linux, c’est que tu peux recompiler le noyau, et comme il n’y en a pas dans tous les coins, affiner les services actifs. Finalement tu peux optimiser ensuite la vitesse de son interface X (affinage des options et recompilation du serveur).
Sur mon pentium 1.4, j’en ai pour le meme tps pour booter linux et un 2000 server…


#3

Effectivement, si tu fais le ménage dans les run level:

[root@aspirateur rc.d]# pwd
/etc/rc.d
init.d rc rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d rc.local rc.sysinit

Pour virer tout ce qui est démarré inutilement tu gagneras beaucoup de temps (et de l’espace mémoire aussi)

tout les scripts sont dans /etc/init.d et les liens pour les stopper ou les démarrer sont dans rc0.d à rc6.d

C’est fou le merdier inutile qui est démarré par défaut … :frowning:

Et c’est toujours une bonne idée d’y faire un peu de nettoyage …


#4

lire la doc pour faire ça clean:
man update-rc.d


#5

Il n’y a pas une commande qui permet de savoir les run level est fonctionnement ainsi que leur description?


#6

ben pas vraiment, sous debian, contrairement à redhat, c’est assez mal documenté dans les scripts. il faut regarder ce qu’il font, faire quelques “man” pour savoir ce que ca lance, et aprés c’est l’expèrience qui te permet de choisir de laisser actif ou pas.
sinon, si tu veux les administrer en mode graphique, tu as un truc qui s’appelle “ksysv”.


#7

Pour connaître le niveau d’éxécution courant taper “who -r”

[root@aspirateur root]# who -r
niveau d’exécution 5 Dec 10 21:21 dernier=S
[root@aspirateur root]#

C’est tiré d’une fedora, j’ai pas de debian juste sous la main …

Ca veut dire que tu est en niveau 5 et que le niveau précédent était le “S” comme “single user” qui est le mode maintenance.

Le niveau 5 est le niveau par défaut sur Redhat/Fedora. Sur Debian, c’est le niveau 2

Si tu veux savoir ce qui est démarré au niveau 5 tu vas sous:
[root@aspirateur rc5.d]# pwd
/etc/rc5.d
[root@aspirateur rc5.d]# ls
K01yum K50snmpd S04readahead_early S20random S85gpm
K05saslauthd K50snmptrapd S05kudzu S25netfs S90crond
K10lircd K50vsftpd S06cpuspeed S26apmd S90xfs
K10psacct K74nscd S08iptables S28autofs S95anacron
K20nfs K87irqbalance S10network S40smartd S95atd
K24irda K89netplugd S12syslog S44acpid S96readahead
K35smb K91isdn S13portmap S55cups S97messagebus
K35vncserver K96pcmcia S14nfslock S55sshd S97rhnsd
K35winbind K99mdmonitor S18rpcgssd S56xinetd S99local
K44rawdevices K99mdmpd S19rpcidmapd S58ntpd
K50netdump K99microcode_ctl S19rpcsvcgssd S80sendmail
[root@aspirateur rc5.d]#

On voit que ce répertoire ne contient que des soft links qui pointent sur init.d:

[root@aspirateur rc5.d]# ls -l ntp
lrwxrwxrwx 1 root root 14 oct 1 12:07 S58ntpd -> …/init.d/ntpd
[root@aspirateur rc5.d]#

En gros, tout ce qui est préfixé par “K” est censé être arrêté en entrant dans ce niveau. Tout ce qui est préfixé par “S” est démarré dans ce niveau. Tout ça, dans l’ordre de numérotation.

Par exemple, pour accélérer le démarrage, tu pourrais éventuellement déplacer S58ntpd (Network Time Protocol, qui bouffe beaucoup de temps) dans rc.local.
rc.local est exécuté après tous les autres init scripts.
Quand ta machine est configurée comme tu veux tu peux aussi virer S05kudzu (discover sous debian, je crois…) qui effectue une détection du matériel à chaque démarrage, ca aussi ca prends beaucoup de temps.

Mais attention à ne pas désactiver n’importe quoi … :laughing:

Bon ménage !

Jabba


#8

runlevel
donne aussi les deux derniers runlevels…
et sinon, sous debian, le runlevel par défaut, c’est le 2.


#9

who -r … Effectivement, pourquoi faire simple quand on peut faire compliqué ! :open_mouth:
J’ai toujours tendance à mélanger les commandes linux et Solaris.

runlevel est quand même plus parlant :wink:


#10

Mais je pensais, ce serait pas mal de pouvoir sauver la session ( sauvegarde dela ram, etc… sur disque dur) à l’arret de la machine et tout remettre directement au ralumage de la machine. Il n’y aurait plus de phase de boot.
Est ce que cela existe?


#11

[quote=“BoubaJazz”]Mais je pensais, ce serait pas mal de pouvoir sauver la session ( sauvegarde dela ram, etc… sur disque dur) à l’arret de la machine et tout remettre directement au ralumage de la machine. Il n’y aurait plus de phase de boot.
Est ce que cela existe?[/quote]
réponse: [quote=“MattOTop”]sur portable, tu as la possibilité normalement de faire du “suspend to disk” qui te permet de swapper ton état memoire et de reprendre (réactiver) sans délai (autre que le rechargement de l’image memoire).
C’est (un peu) la methode utilisée par XP pour accèlérer son boot: j’ai cru comprendre qu’il rechargait une image memoire au démarrage.
Mais je ne sais plus trop comment on fait pour mettre ca en place. Je sais qu’il y a des options à activer dans le noyau, et un peu de config de l’acpi pour déclencher cette mise en veille profonde, par exemple en cas de fermeture du capot du portable, mais je ne sais plus trop ou…[/quote]


#12

Ok, mais est-ce que le “suspend to disk” me permet d’eteindre entierement la machine ( possibilité d’enlever la batterie par exemple) ? Car ça m’a plutot l’air d’un surper mode veille.


#13

si j’ai bien tout compris, c’est TOTALEMENT swappé. tu peux débrancher le disque et le mettre sur une autre machine… (théoriquement).


#14

non, c’est couper totalement la machine pour ne pas utiliser de courant !


#15

si: tu peux MEME deplacer ton disque, et ca, ca se fait bien sans jus, non ? :laughing:
dsl, si j’avais oublié le “même”


#16

Et bien ça c’est cool !

J’essai de compiler le noyau 2.6.9 avec le suspend to disk mais il n’arrive pas à compiler du à une erreur :frowning:

Quand je compile les noyau 2.6.8 il n’arive pas à l’installer, je ne sais pas pourquoi, un probleme de lien apparament.


#17

[quote=“BoubaJazz”]Et bien ça c’est cool !

J’essai de compiler le noyau 2.6.9 avec le suspend to disk mais il n’arrive pas à compiler du à une erreur :frowning: [/quote]
le 2.6.9, j’en ai bavé. J’ai même retouché mes sources à la mimine pour faire tout compiler (cf post ancien)

comment tu compiles ? make ou make-kpkg ?


#18

Je fais un make-kpkg comme d’habitude, il me creer le paquet, mais c à l’installation du paquet que ça merde, mais c’est peut etre parce qu’il y a un noyau de la meme version que j’ai compiler moi-meme qui est installé.


#19

ah ok, c’est pour ca qu’il faut jouer avec les options de nommage style --revision (me souviens plus).
En fait, il te dit que le répertoire de modules /lib/modules/2.6.8-1 (par exemple), existe déjà.
C’est normal, puisque tu as dèja une arborescence de modules qui va avec le noyau actuel…
donc,
soit tu supprimes à la main le répertoire de module, pour faire une install clean, mais toute l’operation doit etre faites ss redemarrer,
soit tu forces, puisqu’il te demande s’il peut continuer (moins clean),
soit tu bidouille les options pour fabriquer un paquetage noyau qui s’appellerait 2.6.8-1-maversionamoi, avec les modules dans /lib/modules/2.6.8-maversionamoi, pour faire une install “en parrallèle” (mais il faut penser une logique de nommage)


#20

j’ai fini par y arriver.

Par contre pour swapé la session, je fais un
echo 4 > /proc/acpi/sleep

Bon, il a marché une fois, mais quand je relancer la machine, une session normale à été lancée. Depuis, à chaque fois que j’essais de le relancer, ça par en trip et soit il systeme et bloqué, soit il dit “Erreur de Segmentation”.

Je pige pas.