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

Re: /sbin -> usr/sbin



Charles Plessy a écrit :
> Le Sat, Jul 11, 2020 at 10:10:52AM +0200, BERTRAND Joël a écrit :
>>
>> Au lieu de faire cela, les devs de Debian seraient inspirés d'avoir un
>> répertoire /rescue avec le contenu de /bin, /sbin et le gestionnaire
>> de paquets compilé en statique.
> 
> Bonjour Joël,
> 
> une image Grml prête sur une partition de secours ne serait-elle pas
> suffisante ?
> 

	Bonjour Charles,

	Pourquoi faire simple quand on peut faire compliqué ;-)

	Le /rescue de NetBSD par exemple évolue avec le système. Il n'y a pas
de mise à jour nécessaire (plus que celle du système) et les outils qui
s'y trouvent sont toujours ceux capables de dépanner le système (dans
les bonnes versions). Il m'est déjà arrivé des soucis avec une debian et
avec un gestionnaire de paquet dans une version de l'image GRML qui
n'était pas capable de remettre d'équerre le système à dépanner qui
était dans une autre version.

	C'est bien pour cela que je trouve très bête (et je suis poli) le fait
d'avoir ces liens de / vers /usr alors que le bon sens voudrait _au
contraire_ que l'on sépare bien ce qui est de l'ordre du mécanisme de
démarrage de ce qui est de l'ordre de l'utilisation du système une fois
celui-ci démarré. Certaines décisions me semblent prises sous l'effet de
la mode (pour ne pas dire sous l'effet de la drogue...) par des gens qui
n'ont pas réfléchi plus que cela à ce qui se faisait par ailleurs. Si
/bin, /sbin, /usr/bin et /usr/sbin ont été séparés depuis trente ans, il
y a peut-être des raisons fondamentales, ceux qui ont fait ces choix
n'étant pas plus bêtes que nous.

	Dans un NetBSD, il n'y a typiquement pas besoin d'avoir une image
rescue quelque part parce qu'il existe ce répertoire /rescue et que
/bin, /lib et /sbin (et /etc) ne servent qu'au démarrage.

	Exemple :

legendre:[~] > uname -a
NetBSD legendre.systella.fr 9.0_STABLE NetBSD 9.0_STABLE (CUSTOM) #6:
Sat Jun  6 16:01:51 CEST 2020
root@legendre.systella.fr:/usr/src/netbsd-9/obj/sys/arch/amd64/compile/CUSTOM
amd64
legendre:[~] > du -hs /bin
1.7M    .
legendre:[~] > du -hs /sbin
12M     /sbin
legendre:[~] > du -hs /lib
18M     /lib
legendre:[~] > du -hs /rescue
20M     /rescue
legendre:[~] > du -hs /stand/amd64/9.0
23M     /stand/amd64/9.0

	Pour peu que tu aies cela sur une partition séparée (en lecture seule),
tu peux toujours redémarrer même ne cas d'effacement d'une bibliothèque
critique (/rescue est là pour cela). /rescue te permet de travailler sur
le vrai système sans jouer du mount -o bind et autres joyeusetés qui
sont assez rapidement plantogènes pour peu que le noyau de l'image ne
soit pas celui en cours sur le système à dépanner.

	En mettant un lien de /sbin vers /usr/sbin, tu t'interdis cela (disons
que tu augmentes les chances que ça se passe mal). Exemple sur un
serveur Debian :

rayleigh:[~] > uname -a
Linux rayleigh 5.6.0-2-amd64 #1 SMP Debian 5.6.14-1 (2020-05-23) x86_64
GNU/Linux
rayleigh:[~] > du -hs /bin
12M     /bin
rayleigh:[~] > du -hs /usr/bin
1,1G    /usr/bin
rayleigh:[~] > du -hs /usr/sbin
64M     /usr/sbin
rayleigh:[~] > du -hs /sbin
17M     /sbin

	Pour démarrer, j'ai _déjà_ besoin d'accéder à une partition en forme
(assez en forme pour être montée en ro) de 1,2 Go, voire deux partitions
en forme dans le cas où /usr est distinct et où on joue avec initramfs.
Et si une bibliothèque cruciale est corrompue, je n'ai que mes yeux pour
pleurer, je n'ai aucun utilitaire compilé en statique pour réparer.
Quiconque a déjà essayé de recompiler un apt en statique verra de quoi
je veux parler.

	Remarque bien, pour démarrer correctement un linux de nos jours, il
faut aussi que l'initramfs soit correct. Encore un truc qui est une
aberration sans nom puisque les scripts appelés ne sont pas forcément
ceux de /etc, mais ceux qui ont été copiés dans l'initramfs. Je conçois
qu'on embarque des modules dans un système de fichiers spécial pour
contourner les problèmes d'initialisation liés au bios. Mais on peut
faire largement mieux avec un système comme grub2 sans passer par cette
horreur qu'est l'initramfs et qui est une source d'ennuis.

	Bien cordialement,

	JKB


Reply to: