Puis-je installer Linux sans créer de partition ?
Oui, c'est possible grâce à UMSDOS.
Login (connexion) impossible, probablement après manipulation du fichier
/etc/passwd ou de l'un des éléments de la chaîne associée (binaire
login, shadow passwords, Red Hat : pwdb ou
PAM ...)
S'il s'agit d'un login root à travers le réseau, ne pas négliger de modifier
/etc/securettys. Dans le cas d'une Red Hat, examiner aussi la
configuration PAM.
Solution fournie par J. Fourre et P. Saratxaga.
Démarrer de façon à pouvoir modifier /etc/passwd. Pour cela, il suffit
de passer un paramètre au noyau afin de lancer le système dans un mode
d'exploitation spécial.
Pour ce faire, démarrer :
S ;single ;init=/bin/sh.Dans le cas d'une Red Hat :
Pablo recommande, sitôt le
système démarré grâce au paramètre init=/bin/bash, d'invoquer
/etc/rc.d/rc 2, remonter "/" en autorisant la lecture et
l'écriture (mode rw) avec mount -n -o remount,rw /,
puis d'éditer /etc/passwd.
On peut se contenter d'invoquer /etc/rc.d/init.d/keytable afin de
bénéficier d'une gestion du clavier adéquate (AZERTY ...).
Pour supprimer un mot de passe, il suffit de modifier la ligne correspondant
au compte dans le fichier /etc/passwd afin de détruire tous les
caractères placés entre les deux premiers « deux-points ».
Exemple (suppression du mot de passe de root) :
root:RuN0C/zyWvkf2:0:0:root:/root:/bin/bash
root::0:0:root:/root:/bin/bash
/etc/shadow.
ATTENTION : un pirate peut employer ce genre d'approche pour prendre le contrôle d'une machine à laquelle il peut « physiquement » accéder.
Pour limiter les risques :
password et restricted de LILO
(ne pas négliger qu'il faudra, lors du démarrage, composer le mot de passe
avec un clavier configuré en QWERTY) ;Cela devrait limiter les écarts des mauvais plaisants mais gare : un malintentionné peut encore ouvrir la machine (remise à zéro du SETUP, dépose du disque dur...).
F. Rouaix note : si la machine peut également démarrer sous
MS-DOS, utiliser loadlin pour charger un noyau avec des options
arbitraires, telles que single.
L. Wacrenier ajoute : le mot de passe de LILO n'est pas chiffré (un boot secteur n'a pas à s'encombrer de bibliothèque de chiffrement). Le mot de passe apparaîtra donc en clair à qui peut lire le disque. D'où l'idée de mettre un mot de passe qui ne peut être saisi au clavier (ou de redéfinir un clavier, etc.).
La session de travail semble parfois bloquée, le terminal ne produit rien et n'accepte plus rien (aucune touche ne fonctionne).
Le blocage est souvent normal car dû à une combinaison de touches « Control-S » ou bien « Arrêt Défil. » (« Scroll Lock ») en mode console. Il suffit alors d'employer « Control-Q » (ou sur « Arrêt Défil. ») pour ranimer la session.
Existe-t-il des virus actifs sous Linux ?
Non, pas à proprement parler car un programme standard (non « setuid ») en
fonctionnement sur une machine Linux ne bénéficie que des droits accordés à
l'utilisateur qui l'invoque. Conclusion logique : root ne doit jamais
lancer de programmes douteux.
En pratique, quelques failles du système (relevant d'erreurs de conception ou de programmation), découvertes de loin en loin et vite comblées, permettraient parfois à un virus de devenir dangereux. Mais nul n'a encore pu exploiter cela. Pour se protéger : utiliser « Tripwire ».
Le shell en prend pas en compte un exécutable placé dans un répertoire qui
figure pourtant dans le PATH.
Il faut obliger le shell à explorer le contenu des répertoires du
PATH.
hash -r ;rehash..tar.gz (archive)
Qu'est-ce qu'un fichier .tar.gz et comment l'utiliser ?
Un fichier .tar.gz contient un ou plusieurs fichiers rassemblés au
sein d'une archive tar, elle-même compactée grâce à gzip.
tar tvzf NOM.tar.gz pour obtenir la liste des fichiers
contenus dans l'archive ;tar xzf NOM.tar.gz pour décompacter l'archive dans le répertoire
courant.Il est temps de lire un bon document destiné à l'utilisateur débutant d'un Unix moderne...
Qu'abrite le répertoire /proc ?
Un ensemble de fichiers « virtuels » permettant de communiquer avec le noyau. Aucun d'eux n'occupe d'espace sur le disque.
Notamment, le fichier kcore, dont la taille peut effrayer, n'est
qu'une image de la mémoire disponible sur la machine. N'essayez pas
de le détruire pour « libérer » de l'espace disque...
loadlin)
Comment fixer les paramètres que LILO ou loadlin devront passer au noyau ?
LILO dynamique (« à la main »)
Pour passer un paramètre au noyau via LILO il suffit, lors du démarrage, de
l'obliger à afficher sa chaîne d'appel LILO boot:
Pour cela, verrouiller le mode « Numérique » (touche Verr Num) ou
le haut de casse (« majuscules »), ou bien maintenir une touche morte (par
exemple Control ou Shift) enfoncée durant le premier accès au disque.
Sitôt LILO boot: affiché, appuyer sur la touche
TABulation. Les noms logiques des systèmes déclarés dans le
fichier de configuration de LILO apparaissent. Choisir celui d'un noyau
Linux stable, le composer puis insérer un espace et le paramètre souhaité.
Exemple (cas d'un noyau appelé lindis auquel on souhaite passer le
paramètre single) :
Control
enfoncée alors que le démarrage sur disque commence. LILO prend la main et
affiche :
LILO boot:
TAB afin d'obtenir la liste des
systèmes d'exploitation accessibles :
LILO boot: ((appuyer sur la touche "TABulation"))
lindis oldlin beta msdos ((noms des systemes "bootables"))
LILO boot: lindis single
LILO statique (fichier de config)
Pour figer un paramètre, placer dans la section adéquate du fichier
/etc/lilo.conf une déclaration append="X", où X
remplace le paramètre à transmettre au noyau. Le
BootPrompt-HOWTO
fournit toutes les précisions nécessaires.
loadlin
loadlin est un petit programme grâce auquel on peut lancer Linux à
partir d'une session MS-DOS.
S. Stephant :
La syntaxe générale de loadlin est :
loadlin.exe ton_noyau root=ta_partition_racine [les parametres du noyau]
Il suffit donc de mettre une ligne dans le config.sys.
Exemple (cas d'une partition Linux sur /dev/hda1, noyau version
2.30) :
shell=c:\loadlin\loadlin.exe c:\loadlin\vmlinuz.230 root=/dev/hda1 ro
Attention : la ligne « shell=... » de MS-DOS ne peut contenir que
127 caractères. La solution est de passer par un fichier de paramètres.
config.sys devient alors :
shell=c:\loadlin\loadlin.exe @c:\loadlin\params.dat
et le fichier params.dat contient, par exemple :
c:\loadlin\vmlinuz.230 root=/dev/hda1 ro
Lire le fichier manual.txt livré avec loadlin.
LILO
prompt au fichier de configuration
/etc/lilo.conf pour que LILO affiche systématiquement sa chaîne
d'appel ;timeout afin de limiter le
nombre de secondes d'attente de LILO après affichage de sa chaîne d'appel.
Exemple : "timeout=50" provoque un délai de 5 secondes.
Utiliser l'option de LILO loader=/boot/any_d.b
Ceci ne concerne que les systèmes mettant à contribution le BIOS lorsqu'ils doivent déterminer la géométrie du disque.
Lire la section « Booting a foreign operating system » de la documentation de LILO.
rpm, deb, pkg)
Comment profiter, sur une distribution X, des paquetages destinés à une autre distribution ?
Compiler et installer rpm.
Se procurer les utilitaires alien, unrpm,
rpm4everyone, rpm2targz (rpm2tgz)
E. David :
Un .deb n'est autre qu'une archive ar contenant (entre
autres) le .tgz. Un petit coup de ar sur un .deb
permet donc d'installer un package debian « à la main » sur une slackware.
Le nombre de liens sur un répertoire semble faux.
Voici la question :
[root@localhost src]# ls -l
total 2
lrwxrwxrwx 1 root root 12 May 2 19:32 linux -> linux-2.0.27
drwxr-xr-x 15 root root 1024 May 3 09:17 linux-2.0.27
drwxr-xr-x 7 root root 1024 Mar 3 15:08 redhat
/\ 15 ? ? ? ? ?
Voilà déjà là mes bouquins et mes essais disent qu'il ne peut pas y avoir
de hard link sur un répertoire, et que les soft link ne sont pas dans
les compteurs de liens, alors comment le répertoire linux-2.0.27 peut avoir
son compteur à 15 ?
Solution fournie par S. Stephant (révisée par F. Petillon) :
Afin de ne pas boucler sans fin lors de la résolution de noms de fichiers, il est effectivement _impossible_ de créer un lien « hard » sur un répertoire. Seul les liens symboliques sont autorisés.
Le compteur de liens (seconde colonne dans un ls -l) indique le nombre de
noms différents que porte un même fichier. Or, un répertoire a toujours au
moins deux noms : « nom_du_repertoire » et « nom_du_repertoire/. ».
Chaque répertoire contient un répertoire nommé « .. » pointant sur son répertoire parent. Ces répertoires incrémentent donc d'autant le compteur de liens du répertoire parent.
Dans ton cas, l'entrée « linux-2.0.27 » a un compteur de liens égal à 15 : le répertoire « linux-2.0.27 », le répertoire « linux-2.0.27/. » et 13 autres répertoires « linux-2.0.27/répertoire/.. »
J'ai tout d'abord installé Linux (Red Hat) sur le disque dur hda.
Or, j'ai depuis acheté un autre disque dur plus gros que j'ai mis en
maître sur ma première nappe, reléguant le précédent sur ma deuxième
nappe IDE... Mon ancienne installation de Linux se retrouve donc
maintenant en hdc... Que faut-il modifier pour arriver à la faire
tourner comme avant mais en hdc...?
Solution fournie par J.C. Richard :
rescue. Puisque tu as la Red Hat, utilise
la disquette de boot fournie, mais tape rescue quand lilo
te demande ce que tu veux ;hda1 à hdc1
pour t'expliquer la méthode.
mkdir /mnt/tmp
mount /dev/hdc1 /mnt/tmp
cd /mnt/tmp/etc
vi fstab
(remplace alors tes occurences de /dev/hda1,2,3,4 par
/dev/hdc1,2,3,4)
vi lilo.conf
boot=/dev/hda (pour avoir LILO en MBR)
map=/boot/map
install=/boot/boot.b
prompt
image=/boot/vmlinuz
label=linux
root=/dev/hdc1
read-only
et tout le reste de ton lilo.conf est à modifier dans le même sens,
si tu as des partitions Dos, NT et autres à installer ;loadlin en lui indiquant le montage root=/dev/hdc1 ;
mount root=/dev/hdc1
lilo. Tout est réparé.
Comment déterminer quel processus utilise une ressource donnée (fichier, donc par extension périphérique) ?
Employer (en tant que root) l'utilitaire fuser, livré avec
l'ensemble psmisc.
Exemple commenté :
$ fuser /dev/ttyS1 # qui donc utilise /dev/ttyS1 ?
/dev/ttyS1: 245 # le processus numero 245
$ ps -auxw|grep 245 # quel est ce processus ?
root 245 0.3 6.8 8336 4356 ? S 10:34 1:29 X :0
# c'est X Window !
$ fuser /usr/bin/X11/X # qui donc utilise "/usr/bin/X11/X" ?
/usr/bin/X11/X: 245 # programme execute par le processus 245
On peut aussi installer lsof.
Mon horloge système avance ou retarde, que faire ?
D. Madore :
Linux garde son horloge à jour en fonction du générateur de fréquence de
ton ordinateur (qui produit des IRQ0). Pour peu qu'il ne soit pas
excellent, l'horloge se dérègle rapidement.
Si ton horloge CMOS (qui est complètement indépendante) est meilleure, tu
n'as qu'a demander à cron d'exécuter clock -a
toutes les heures (ou clock -au si l'horloge CMOS est à l'heure GMT).
Tu peux obtenir encore une meilleure précision en corrigeant une éventuelle
dérive de l'horloge CMOS dans /etc/adjtime. Cf. man 8 clock
pour tous renseignements utiles.
Note : sous certaines distributions un hwclock, aux options un peu
différentes, remplace clock.
Le simple ajout d'une ligne à /etc/fstab permet à n'importe quel
utilisateur de monter/démonter un support amovible sans devoir employer
tous les paramètres.
Voici, par exemple, un extrait de /etc/fstab (cas d'un CD-ROM ATAPI
maître sur la seconde chaîne EIDE)
/dev/hdc /mnt/cd iso9660 noauto,user,exec,ro,umask=033,unhide 0 0
Chaque ligne du fstab est composée de champs qui décrivent un système
de fichiers montable. Des espaces ou tabulations séparent ces champs.
/dev/hdc) contient le nom du fichier spécial
associé au périphérique ;/mnt/cd) le nom du répertoire où le montage sera
effectué (il DOIT exister !) ;iso9660 pour un CD-ROM, vfat pour une partition MS-DOS ;noauto,user [...]=033) les options de montage ;
noauto :Pas de montage automatique lors du boot.
user :Montable/démontable par un utilisateur (c'est ce qui nous intéresse).
exec :Les binaires placés sur ce support seront exécutables.
ro :Lecture seule (Read-Only).
umask :« permissions » du répertoire de montage. 033 (ou
000, si vfat) permet à tous de lire.
0) la fréquence des sauvegardes par
dump : laisser 0 dans le cas d'un volume amovible ;0) le rang de passage à fsck : laisser 0
dans le cas d'un volume amovible ;Utiliser /dev/sr0 en lieu et place de /dev/hdc pour le
premier CD SCSI.
N'importe quel utilisateur peut alors invoquer mount /mnt/cd puis
umount /mnt/cd et obtenir satisfaction. ATTENTION : le binaire de
mount doit être setuid root :
chown root `which mount`
chmod +s `which mount`
Autres exemples :
/dev/hda1 /mnt/dos-c vfat umask=003,codepage=850,noauto,user,exec 0 0
/dev/sda4 /mnt/jaz ext2 noauto,user,exec 0 0
/dev/fd0 /mnt/floppy auto sync,user,noauto,unhide 0 0
Documentation : commencer par les pages de manuel de mount et
fstab.
S. Stephant :
Utiliser les options gid, uid et/ou umask pour
limiter les possibilités des divers utilisateurs sur les systèmes de
fichiers ainsi montés.
Afin de limiter l'accès de certaines partitions à un utilisateur ou à un
groupe précis, on peut utiliser l'option de montage « umask ». Par exemple,
pour que seuls les membres du groupe « dos » (gid=202) puissent accéder à
votre partition vfat, on peut utiliser la ligne suivante dans le
fstab :
/dev/hda1 /diskc vfat noauto,user,noexec,gid=202,umask=0007 0 0
De même, pour autoriser seulement l'utilisateur « durand » (uid=100) à écrire
sur cette partition, autoriser les membres du groupe « dos » (gid=202) à
y lire, et interdire l'accès aux autres, on peut utiliser une entrée comme
:
/dev/hda1 /diskc vfat noauto,user,noexec,uid=100,gid=202,umask=0027 0 0
Ne modifier que /etc/fstab, JAMAIS /etc/mtab.
Comment mieux employer les consoles virtuelles ?
chvt permet de changer de console active ;setterm pour établir les paramètres ;tty affiche le nom du périphérique connecté à la console
active.
C. Blaess (édité) :
Il n'existe pas encore de système de fichiers stable pour Linux capable d'effectuer un compactage dynamique des données. Un patch pour les noyau 2.0.x offrant la compression dynamique est cependant disponible.
On peut toutefois utiliser certains artifices :
zlibc est une bibliothèque qui intercepte les appels à la
fonction open(), et reconstitue « à la volée » les fichiers compressés
auparavant par gzip. Toutefois, ce paquetage ne permet pas l'exécution de
fichiers binaires compressés ;tcx est un bon complément de zlibc, puisqu'il ne décompresse que
des fichiers exécutables ;DouBle est un patch pour les noyaux 1.2.x (je se sais pas
s'il fonctionne avec les 2.x). Il s'agit d'un pilote de périphérique,
effectuant une compression des données à la volée. Il s'intercale entre le
périphérique physique et le système de fichiers (ou même la partition de
swap).Pour accèder aux volumes compressés d'une partition MS-DOS, il y a plusieurs possibilités :
Dosemu ;thsfs est un module permettant de monter des partitions MS-DOS
normales ou des volumes Double Space, en lecture seulement ;dmsdosfs est un système de fichiers permettant un accès en
lecture/écriture aux volumes compactés :
DoubleSpace et DriveSpace de MS-DOS 6.x ;DoubleSpace et DriveSpace 3 de MS-Windows 95 ;Stacker 3 et 4.DriveSpace 3 et
Stacker 3. Il fonctionne avec les noyaux 2.0.xftp.lip6.fr dans fr.comp.os.linux.annonces (élimination, article, suck)
Comment ne pas recevoir les articles de HOWTO postés dans
fr.comp.os.linux.annonces ?
Le champ Path d'un article abritant un HOWTO contient la chaîne
fr.howto. Celui d'un article véhiculant une liste des nouveaux
fichiers Linux disponibles sur le serveur ftp.lip6.fr contient
fr.miroir. Il suffit de filtrer en fonction de ce critère.
Si vous récupérez les articles grâce à un feed INN normal, demander à
l'administrateur de la machine « nourrissant » ainsi la vôtre d'ajouter le
membre de Path adéquat à l'exclude de la ligne du
newsfeeds correspondant à votre machine.
Si vous employez suck, (É. Jacoboni) vous pilote :
(version 3.6.0 et suivantes) : tout champ d'en-tête peut être filtré selon
la syntaxe suivante :
champ:expression rationnelle ("regexp") de filtrage
Le contenu du fichier suckkilfile.fcola correspondant à
l'exemple de F. Pavageau, ci-dessus, devient donc :
Path:fr\.howto
Comment ajouter une entrée dans /dev ?
À chaque périphérique peut correspondre un (ou plusieurs) fichier spécial grâce auquel les programmes dialoguent avec le pilote de périphérique correspondant.
Règles :
MAKEDEV ou
mknod. Lire le fichier « Documentation/devices.txt » livré avec les
sources du noyau afin de déterminer les paramètres adéquats ;/dev n'est
pas suffisant, il faut aussi que le pilote de périphérique nécessaire soit
disponible (compilé dans le noyau ou sous forme de module).
Après compilation et installation d'un noyau récent (mai-juin 1998 ...) le système ne redémarre plus ou bien les logiciels fonctionnent mal.
O. Tharan explique :
Cela vient du compilateur utilisé ; la version recommandée est la 2.7.2.3
(ni antérieur, ni postérieur).
Ne pas utiliser gcc 2.8 et supérieurs, ainsi qu'egcs.
Je conseille d'installer gcc pour la compatibilité et la partie d'egcs pour
le C++.
R. Card : (utilisation de gcc 2.7.2.3 nécessaire à cause d') un bug dans le noyau 2.0 visant à contourner un bug dans gcc 2.7 (bug qui a été corrigé dans gcc 2.8 et dans egcs et qui entraîne des problèmes si le noyau est compilé avec ces versions récentes des compilateurs).
B. de Batz :
Le script d'upgrade qui est sur le CD (cd_autoup.sh) ne correspond
pas à la répartition des fichiers sur le disque car certaines bibliothèques
ont été déplacées.
Il faut aller récupérer un cd_autoup.sh plus récent.
De plus ce "nouveau" cd_autoup.sh étant prevu pour être sur le CD,
il utilise un chemin absolu qui interdit son utilisation à partir d'un
autre répertoire, et il faut y modifier la ligne :
DM=`dirname $0`/../debian/hamm/hamm/$ARCH
de sorte qu'elle devienne :
DM=../debian/hamm/hamm/$ARCH
Lors de la procédure d'installation les fichiers contenant les messages en français ne sont pas pris en charge.
J. Bernier :
Les disquettes (boot, supplementaire et secours) qui corrigent ce probleme
sont disponibles.
J. C. Delepine :
Explorer la
zone system/recovery/ des sites FTP diffusant du Linux.
Alors que mon système ne fait rien et que je n'ai quasiment pas de processus qui tournent, la commande 'free' indique que quasiment toute ma mémoire est utilisée !
O. Tharan :
C'est normal. Linux utilise la mémoire pour plusieurs choses. Tout d'abord
pour le noyau lui-même, évidemment, c'est de la mémoire irrécupérable pour
autre chose ; ensuite, la mémoire utilisée par les applications ; et puis
tout le reste, en mémoire cache disque (dite "buffer cache").
La mémoire cache, c'est ce que le système a utilisé à un moment et n'utilise plus. Mais, il se pourrait que les données (programme, fichier) soient demandées par l'utilisateur d'ici peu, alors au lieu d'aller les rechercher sur le disque, on va chercher ces données dans la mémoire cache, ce qui est beaucoup plus rapide.
Linux utilise donc le maximum de mémoire disponible pour en faire du cache, mais s'il s'avère qu'une application a besoin de plus de mémoire, il libère une partie de la cache pour l'application. Donc, rien n'est perdu et tout le monde est satisfait. Avec un peu de recul, on comprendra qu'il n'est pas inutile d'investir dans de la RAM : plus on en aura, plus le système disposera de cache, et plus il paraîtra rapide (il faut mettre un bémol à ceci, car les performances se dégradent si on augmente la RAM sans augmenter par ailleurs le cache processeur).
Le test ultime pour vous faire prendre conscience de ceci : démarrez, lancez X puis Netscape ; quittez et relancez Netscape et vous constaterez la différence de vitesse.
Je suis en train de compiler un noyau et tout à coup, j'ai l'erreur suivante :
System is 520 kB
System is too big. Try using bzImage or modules.
make[1]: *** [zImage] Error 1
O. Tharan :
Effectivement, le noyau est trop gros. Ceci est dû à la fameuse barrière
des 640 Ko ! En effet, au démarrage le processeur est en mode réel et ne
peut accéder qu'aux premiers 640 Ko, il faut dans cet espace charger à la
fois LILO (512 octets) et le noyau. De plus, le noyau a besoin de cet
espace pour se décompacter et se lancer, il faut donc ruser (source : Linux
Device Drivers).
Il faut donc compiler le noyau de sorte qu'il puisse se charger correctement. Pour cela, utilisez la commande "make bzImage" et non "make zImage" pour pouvoir compiler un gros noyau. Mettre les pilotes qui ne vous servent pas tout le temps en module, afin qu'ils soient chargés à la demande et que le noyau soit plus petit.
Affichage console très lent, avec carte mère DFI PVB3+
A. Buret de Longagne : Dans le SETUP :
CHIPSET FEATURES SETUP
...
CPU TO PCI WRITE BUFFER : DISABLED
Quand je fais un telnet depuis une machine Windows (ou Linux, d'ailleurs), j'attends très longtemps au moment de la connexion, environ une minute, avant d'avoir l'invite de login. Après, ça fonctionne très bien...
O Tharan explique :
Problème de résolution de noms classique : la machine Linux essaie de faire
une résolution inverse sur l'adresse IP de la machine MS-Windows pour
savoir qui l'appelle, et n'y arrive pas, d'où attente. Exemple : je me
connecte avec l'adresse IP 192.168.1.2 et Linux essaie de savoir à
quel nom (windows.babasse.fr) cela correspond.
Solution : renseigner la table /etc/hosts en indiquant l'adresse
IP de la machine MS-Windows et son nom. Exemple :
192.168.1.1 linux1.maison.fr
192.168.1.2 windows1.maison.fr
Inutile d'installer un serveur de noms pour si peu, même si c'est un bon exercice.