Raaaaaaaah j'ai perdu trop de temps pour rien

This commit is contained in:
2024-11-04 10:50:04 +01:00
parent 8012aaefa1
commit f043fba00c

141
tp4.md
View File

@@ -165,5 +165,146 @@ Et la led bleue de la board fait du morse avec deux pulsations puis pause le tou
Et j'avoue je sais pas pourquoi. Je vois dans le cours que il peut y avoir un problème quand le repertoire /dev n'existe pas alors je vais le créer dans nfsroot et on va voir si ca change quelque chose.
ET C'EST BON !! Comment je suis refais c'est une folie ca marche enfin.
```
VFS: Mounted root (nfs filesystem) on device 0:14.
devtmpfs: mounted
Freeing unused kernel image (initmem) memory: 1024K
Run /sbin/init as init process
can't run '/etc/init.d/rcS': No such file or directory
Please press Enter to activate this console.
~ # ls
bin dev linuxrc sbin usr
```
On a enfin un Linux qui tourne sur notre board avec lequel on peut interragir avec un invite de commande dont on a l'habitude je suis trop content.
## Configuration du système et démarrage
### [Q3] : Donnez le contenu de votre fichier inittab et de chaque fichier se trouvant dans le répertoire /etc/init.d/ de votre rootfs.
Dans nfsroot `mkdir etc` `cd etc` `vim inittab`
```
::sysinit:/etc/init.d/rcS
::respawn:-/bin/sh
```
`mkdir init.d` `cd init.d` `vim rcS`
```bash
#!/bin/sh
# Start all init scripts in /etc/init.d
# executing them in numeric order.
for i in /etc/init.d/S??*; do
case "$i" in
*.sh)
# Source shell script for speed.
. "$i"
;;
*)
# No .sh extension, so fork subprocess.
"$i" start
;;
esac
done
```
`sudo chmod 777 rcS`
C'est pas ouf de mettre autant d'autorisation mais je ne veux pas avoir le moindre problème donc je mets ca temporairement. Ca sera remis à des autorisations plus normales plus tard.
De ce que j'ai compris chaque service qui commence par S dans le repertoire init.d sera executé et c'est dans l'ordre alphabetique juste par ce que la recherche par nom qui commencent par S se fait dans cet ordre.
Par convention un service qui commence par 'K' sont desactivés
Je n'ai encore aucun service dans init.d je ne comprends pas vraiment la question car sur ma board ce repertoire n'existait même pas encore mais je peux essayer d'en ajouter un.
```sh
#!/bin/ash
echo "The best distrib ever"
```
le fichier ci dessus sera renommé S1.sh. En toute logique ca devrait être executé en premier.
On peut redémarrer notre kernel pour voir
```
Run /sbin/init as init process
Bad inittab entry at line 1
Bad inittab entry at line 2
```
Ca c'est par ce que il y avait des espaces dans le chemin du inittab. Après avoir règlé ca on a cette erreur
```
VFS: Mounted root (nfs filesystem) on device 0:14.
devtmpfs: mounted
Freeing unused kernel image (initmem) memory: 1024K
Run /sbin/init as init process
can't run '/etc/init.d/rcS': Permission denied
```
C'est bizarre par ce que j'avais mis les autorisations full sur rcS...
Je vais essayer avec la commande
`chmod +x rcS`
Mais non toujours impossible de run le rcS J'ai essayé en donnant les autorisations sur le repertoire au dessus etc... mais rien n'y fait
Après recherches il semble que ca soit ma config nfs qui soit à blâmer, voici la nouvelle (rappel je suis sur macos donc la config est pas la même que sur ubuntu)
```
/Users/rohmermaxime/nfsroot 127.0.0.1 -alldirs -maproot=0
/Users/rohmermaxime/nfsroot 192.168.144.100 -alldirs -maproot=0
/Users/rohmermaxime/nfsroot 192.168.64.7 -alldirs -maproot=0
```
J'ai changé le -mapall=nobody en -maproot=0
`sudo nfsd restart`
Mais toujours pas alors je vais tenter
`-mapall=0`
Mais toujours pas...
J'ai même essayé de chmod -R 777 tout nfsroot mais rien n'y fait.
Mais c'est bizarre par ce que je peux executer S1.sh depuis la board sans problème...
```
~ # sh /etc/init.d/S1.sh
The best distrib ever
```
Bon en fait c'est par ce que le fichier rcS avait un espace dans le /bin/sh... yes... mais maintenant que le script est corrigé voila le resultat :
```
VFS: Mounted root (nfs filesystem) on device 0:14.
devtmpfs: mounted
Freeing unused kernel image (initmem) memory: 1024K
Run /sbin/init as init process
The best distrib ever
~ #
```
On voit bien que notre fichier service a bien été executé au démarrage :)
### [Q4] : Que se produit-il lorsque vous exécutez la commande ps ?
```
~ # ps
PID USER VSZ STAT COMMAND
ps: can't open '/proc': No such file or directory
```