Sunday, 28 October 2012

Clef de secours (seconde partie)

Suivant les indications figurant dans le billet Clef de secours, nous avons rendu une clef usb bootable en installant dans son secteur d'amorce un chargeur grub qui pointe vers un dossier grub situé sur cette même clef.
Dans ce dossier se trouve un fichier de configuration grub.cfg contenant par exemple:
search --no-floppy --label --set=root Ubuntu 
chainloader +1 
boot
Si tout fonctionne bien, booter via la clef est transparent et le menu qui surgit est celui du fichier de configuration utilisé par le chargeur grub dont la partie initiale se trouve sur le VBR (Volume Boot Record) de la première partition trouvée dont le label est "Ubuntu".
Dans le cas contraire, si cela se passe mal, il existe diverses possibilités. L'une d'elles consiste à ce que l'on atterrisse directement dans un shell grub.
Nous sommes alors à la tête d'un mini-système d'exploitation et nous pouvons lancer au niveau de ce shell grub un certain nombre de commandes, dont la commande set qui renvoie la liste de différentes variables d'environnement avec leur valeur.
Examinant l'output de cette commande nous y trouvons quelque chose comme:
prefix=(hd0,msdos1)/grub
root=hd1,msdos3
Cela montre que l'exécution de la commande search a été couronnée de succès car au démarrage la valeur de la variable root est fixée à partir de celle de la valeur prefix.
En fait la variable prefix indique à grub où se trouvent les modules et les fichiers images (*.img) dont il a besoin pour fonctionner: dans le dossier grub de la partition 1 de la clef usb (qui est considérée comme hd0 puisqu'on a booté dessus).
Puisque search a bien fonctionné, la raison de l'échec du lancement du système linux est a chercher ailleurs: le VBR désigné par la commande chainloader ne contient pas de grub, ou celui-ci est inopérant.
Sans doute grub n'a-t-il jamais été installé sur ce VBR?

La commande multiboot.
Mais pas de problèmes: il n'est pas nécessaire de procéder à cette installation. Pour charger le grub du système linux que nous souhaitons démarrer, il suffit de saisir dans notre shell grub les commandes:
grub> multiboot /grub/i386-pc/core.img 
grub> boot
Ceci implique bien sûr que le label Ubuntu désigne une partition qui sera montée en /boot.
Si Ubuntu désigne la partition racine et qu'aucune partition n'est montée en /boot les commandes à saisir sont:
grub> multiboot /boot/grub/i386-pc/core.img 
grub> boot
Dans les deux cas, le chemin vers core.img n'est pas nécessairement celui indiqué ici. Mais comme la complétion fonctionne très bien, il est aisé de vérifier si on est sur la bonne voie où pas.
Une autre possibilité si cela se passe mal dès le départ est que l'on soit finalement renvoyé vers le chargeur principal. Mais normalement si nous utilisons la clef de secours c'est justement parce que le chargeur principal ne nous permet plus d'amorcer notre système linux. Le désastre étant provoqué par la commande boot figurant dans le grub.cfg de la clef, nous la supprimons avant une nouvelle tentative. Nous atterrissons cette fois dans un shell grub.
L'output de la commande set donne:
prefix=(hd0,msdos1)/grub 
root=hd0,msdos0
La variable root est restée inchangée! La commande search n'a rien donné: aucune partition trouvée avec le label indiqué (Ubuntu dans notre exemple). Il importe avant de poursuivre de donner à la variable root la valeur qui convient, soit directement, par exemple:
grub> set root=(hd1,3)
soit en lançant une nouvelle commande search adaptée.
Évidemment pour savoir quelle est la valeur à attribuer à root, il faut avoir un minimum de connaissance sur la structure du système linux que l'on veut amorcer: quelles sont les partitions utilisées?
Si nous fixons nous-même directement la valeur de root, il peut être utile de vérifier que nous sommes au bon endroit  à l'aide de la commande
grub> ls /
Ici nous vérifions que nous sommes bien sur la partition /boot d'un système Fedora 17 avant de saisir les commandes permettant de charger le grub de ce système:


Si la commande ls / retourne des choses du genre etc/ boot/ home/ ..., cela signifie que nous sommes sur la partition racine d'un système.
Il convient alors d'exécuter la commande ls /boot. Si cette dernière commande ne retourne rien, cela signifie que notre système fonctionne avec en plus de la partition racine, une partition à monter en /boot.

Notons que l'emploi de la commande multiboot n'est pas réservé à une utilisation dans un shell grub: elle peut aussi être utilisée dans un fichier grub.cfg.

La commande configfile.
Une alternative à la commande multiboot est l'utilisation de la commande configfile:
grub> configfile /grub/grub.cfg
Cette commande provoque l'affichage du même menu que celui obtenu avec la commande multiboot. La différence est que cette fois le grub du système linux (dont les fichiers img et mod se trouvent sur le disque dur) n'est pas chargé. On reste dans le même grub (celui de la clef), mais on lui demande d'utiliser le fichier de configuration dont le nom absolu est (hd1,3)/boot/grub (si la variable root vaut hd1,3)

Amorçage en ligne de commande.
Supposons maintenant que notre système linux ne comprenne aucun chargeur où que celui-ci est inopérant.
Impossible d'utiliser la commande multiboot (ou configfile).
Mais rien n'est perdu.
Quelques commandes tapées dans notre shell grub (où placées dans le grub.cfg) suffisent à amorcer le système:

grub> set root=(hd1,3) 
grub> linux /vmlinuz-3.5.0-17-generic root=LABEL=u-root ro
grub> initrd /initrd-3.5.0-generic 
grub> boot

Il est important de ne pas confondre la variable root de la ligne 1 qui se rapporte à la partition où se trouve le noyau (ici vmlinuz-3.5.0-17-generic) avec l'option root de la commande linux qui indique au noyau quelle est la partition racine.
Notons que grâce à la complétion il n'est pas nécessaire de connaître de connaître le nom exact des fichiers vmlinuz et initrd.
Il est cependant utile de connaître le label de la partition racine.
Rappelons que la commande blkid exécutée en root (par exemple depuis un live CD)  fournit tous les renseignements nécessaires.
Signalons enfin que si aucune partition n'est à monter dans /boot, la variable root désigne alors la partition racine puisque c'est elle qui contient le noyau. Mais malgré tout il faut encore indiquer au noyau quelle est la partition racine.
Dans ce cas les commandes à saisir seraient par exemple:

grub> set root=(hd1,3)
grub> linux /boot/vmlinuz-3.5.0-17-generic root=LABEL=Ubuntu ro
grub> initrd /boot/initrd-3.5.0-generic
grub> boot

Monday, 15 October 2012

Instalando e configurando o TS no Windows Server 2003

By: Link Ref.


1. Instalar e configurar o Windows Server 2003
2. Instalar e configurar um site usando o IIS 6.0
3. Instalar e configurar o FTP com isolamento de usuários (um usuário não pode acessar a pasta de outro)
4. Instalar e configurar o Terminal Server,permitindo acesso remoto aos Administradores ou usuários pré-determinados
No final deste tutorial há três dicas de segurança que devem ser implementadas para aumentar a segurança do seu servidor.
1. Instalando e configurando o Terminal Server no Windows Server 2003
O TS (Terminal Server) é um serviço que permite que você acesse o seu servidor remotamente, trabalhando nele em modo gráfico como se você estivesse ali. O TS no Win2003 utiliza o protocolo RDP 5.2, que tem muitas melhorias em relação à versão 5.1 do Windows 2000 Server.
Você pode instalar o cliente do RDP 5.2 no Win9x, WinMe, WinNT, Win2000 e WinXP, permitindo com isso utilizá-lo ao acessar um servidor Win2003 (ou uma estação WinXP) via TS. Para fazer o download do arquivo, acesse esta página  e faça o download do arquivo
Entre as novidades do TS do Win2003 em relação ao TS do Windows 2000 Server, estas são algumas:
- redirecionamento automático de impressoras e drives mapeados
- redirecionamento automático de áudio
- redirecionamento automático de fuso horário
- redirecionamento automático de portas seriais e paralelas
- reconexão automática de sessões (muito útil em conexões via wireless)
- suporte a cores com 24-bits
- suporte a encriptação de 128-bits
- suporte a autenticação via smartcard
- alocação dinâmica de banda
- restrições via GPO
Vamos à instalação do TS:
Clique no botão Iniciar > Painel de Controle > Ferramentas Administrativas > clique em Assistente para configurar o Servidor > clique em Avançar e Avançar. Se aparecer uma mensagem avisando que uma das conexões de rede não está funcionando, isso é normal pois indica que o seu computador tem duas placas de rede instaladas mas somente uma está conectada (imagem abaixo), bastando clicar em Continuar.
Clique na opção Terminal Server e clique em Avançar. Aparecerá uma mensagem informando que o servidor terá de ser reiniciado durante a instalação do TS:
Ao ser reiniciado, o Win2003 mostrará uma tela informando que o servidor agora funciona como Terminal Server.
Para utilizar o TS, basta você deve definir quais usuários poderão acessar o servidor remotamente. Para isso, clique no botão Iniciar > Painel de ControleFerramentas Administrativas > Gerenciamento do Computador > duplo-clique em Usuários e Grupos locais > clique em Usuários.
Na janela à direita você verá a lista de usuários. Clique com o botão da direita do mouse no usuário que você deseja permitir acessar o seu servidor remotamente > Propriedades > aba Membro de > clique em Adicionar > Avançado > Localizar agora > dê um duplo-clique em “Usuários da área de trabalho remota” e clique em OK.
Com isso, os usuários com permissão de acesso via TS poderão acessar o servidor remotamente. Para fazer isso de um computador com Windows XP, por exemplo, basta clicar no botão Iniciar >Todos os programas > Acessórios > Comunicações > Conexão de área de trabalho remota.



Saturday, 6 October 2012

Linux sans angoisse

Au moment de passer à l'acte, une angoisse insoutenable étreint soudain le néophyte.
Comme à chaque tentative, la même question lancinante assaille son esprit, encore et encore:
« Et si je perdais mon accès à windows? »
Mais cette fois, il ne renoncera pas!
Non, il ne renoncera pas à installer linux à côté de windows, sur le même disque dur.
Il ne renoncera pas car il a déjà tout préparé.
Dans windows, il a libéré de l'espace, plus précisément créé de l'espace non alloué pour pouvoir installer linux.
De plus, comme il est super angoissé, il a décidé de ne pas écraser le chargeur de windows. Il a déjà tout prévu pour pouvoir amorcer linux avec ce chargeur.
Il se souvient de chaque étape.
Tout d'abord, ouvrir l'invite de commande windows en mode Administrateur.
Ensuite sauvegarder le fichier bcd d'origine avec la commande:

bcdedit /export C:\bcdorig

De la sorte on peut facilement revenir à la situation antérieure avec:

bcdedit /import C:\bcdorig

L'étape suivante consiste à créer une entrée dans bcd:

bcdedit /create /d "[Linux]" /application BOOTSECTOR

La commande envoie en retour (avec un message de réussite) l'identifiant de l'entrée nouvellement créée.
En effectuer une copie de manière à pouvoir l'utiliser pour la suite.

Étape suivante: indiquer au système sur quelle partition va se trouver le code servant à amorcer linux en donnant comme argument de la commande l'identifiant de l'entrée:

bcdedit /set {299c4c80-0a1b-11e2-ab33-f46d04d5218a} device partition=C:

Ensuite il faut préciser le chemin vers ce code:

bcdedit /set {299c4c80-0a1b-11e2-ab33-f46d04d5218a} path \linux.bin

Ajouter l'entrée au menu qui sera affiché:

bcdedit /displayorder {299c4c80-0a1b-11e2-ab33-f46d04d5218a} /addlast

Préciser le délai d'attente en secondes:

bcdedit /timeout 5

Tout ça a déjà été fait: maintenant quand il démarre son ordinateur, il tombe sur un menu qui ne lui sert à rien puisque linux n'est pas installé.
Ce serait stupide de reculer encore.
D'autant plus qu'il connait exactement ce qui lui reste à faire. Bootant sur le live cd, il a déjà repéré la partition que windows appelle C:


Facile: c'est celle qui contient à la racine le fichier bcdorig.
Il a appris à ouvrir un terminal: appuyer sur la touche windows et taper "te" fait apparaître son icône. Il ne reste plus qu'à cliquer dessus:


Ensuite pour faire passer le terminal en mode Administrateur, il suffit d'y taper la commande

sudo -s

Pour se déplacer dans le terminal vers la partition C de windows, le plus facile consiste à taper la commande cd suivie d'un espace puis de faire un glisser-déposer de l'icône de la partition sur le curseur du terminal.


Ensuite: appuyer sur 'Enter ', et voilà: on y est!


Il sait faire tout cela. Il s'est souvent entraîné: c'est devenu un expert.
Avant même d'avoir installé quoique ce soit!

A la fin de l'installation, avant de quitter le live cd, il pourra facilement refaire toutes ces manipulations. Puis lui restera à créer le fichier linux.bin en exécutant la commande:

dd if=/dev/sda7 of=linux.bin bs=512 count=1

/dev/sda7 désignant la partition sur laquelle le chargeur linux sera installé.

Wednesday, 3 October 2012

Clef de secours

Ce sujet ne traitera pas de la constitution d'une clef usb permettant de réparer windows.
Pour ceux qui seraient intéressés, ce lien devrait les combler.
Nous allons ici parler ici d'une clef permettant de démarrer linux lorsque cette possibilité a été perdue suite par exemple à l'utilisation d'une clef usb (ou d'un cd) de réparation de windows.
Bien sûr, il y a toujours moyen de s'en sortir via l'utilisation d'un Live cd, mais la procédure est beaucoup plus lourde.
Le mieux est d'être prévoyant.
Donc, supposons que nous pouvons accéder sans problèmes à notre système linux.
Déterminons quelles sont les partitions utilisées par notre système à l'aide la commande df:


La partition racine de notre système est /dev/sda7.
Nous constatons la présence d'une clef usb reconnue en tant que /dev/sdc et dont l'unique partition 1 est montée en /media/KINGSTON.
La première opération, consiste, si ce n'est déjà fait, à installer grub (acronyme de Grand Unified Bootloader) sur le secteur d'amorce (VBR) de la partition racine. En effet, rien n'empêche d'installer grub à la fois sur /dev/sda (donc sur le MBR) et sur le VBR de /dev/sda7. On dispose ainsi de deux portes d'entrée pour lancer notre système linux.
Procédons à l'aide de la commande:

# grub-install --force /dev/sda7

L'option --force n'est tellement appréciée par le système et il nous le fait savoir.
Le grub installé sur /dev/sda7 ne peut être utilisé qu'en tant que chargeur secondaire.
Nous verrons dans un autre billet comment il peut être initié par le chargeur de windows. Dans ce billet nous allons montrer comment procéder en bootant sur une clef usb (ceci a déjà été évoqué dans ce billet).
Tout d'abord, il convient d'installer grub sur le secteur d'amorce de la clef usb et le faire pointer vers des fichiers qui seront enregistrés sur la clef:

# grub-install --boot-directory=/media/KINGSTON /dev/sdc

Il est à remarquer que les données présentes sur la clef (par exemple formatée en FAT32) ne sont absolument pas impactées par l'opération: elle peut donc continuer à être utilisée de manière classique.
Simplement il y a apparition d'un dossier grub contenant tous les fichiers liés à ce chargeur. Il y manque le fichier de configuration grub.cfg.
Afin de pouvoir le constituer, il serait utile d'avoir quelques informations complémentaires sur /dev/sda7:


Constatant que la partition n'avait pas de label, nous lui en avons attribué un (en rapport évidemment avec le système linux installé)
Nous pouvons créer un fichier de configuration utilisant l'UUID de /dev/sda7, et contenant:

search --no-floppy --fs-uuid --set=root 5eba7617-afd6-4480-9b65-fb4e48de3d3c
chainloader +1
boot

On peut aussi fonctionner avec le label:

search --no-floppy --label --set=root Ubuntu
chainloader +1
boot

L'avantage de cette dernière solution est que la clef peut être utilisée sur différentes machines à condition que les partitions utilisées pour booter aient toutes le même label (à savoir Ubuntu dans cet exemple).

Et voilà: pourvu que le bios soit configuré pour booter en priorité sur l'usb, il suffit de démarrer avec une clef insérée pour amorcer linux sans utiliser le MBR

Pour avoir l'opportunité de choisir le système à amorcer, il faut évidemment une étape supplémentaire, à savoir afficher un menu, ce qui s'obtient par exemple avec un fichier de configuration tel que celui-ci:

menuentry "Ubuntu" { 
search --no-floppy --label --set=root Ubuntu 
chainloader +1

menuentry "Linux Mint" { 
search --no-floppy --label --set=root Mint 
chainloader +1
}