IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Assembleur Discussion :

Rendre un programme bootable


Sujet :

Assembleur

  1. #1
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 13
    Points : 7
    Points
    7
    Par défaut Rendre un programme bootable
    Je sais que ce sujet a déjà été traité dans un autre sujet mais je n'arrive toujours pas à résoudre mon problème.

    J'ai créé un programme destiné à faire un secteur boot en suivant l'exemple d'un tutorial.
    mais je n'arrive pas à le rendre Bootable sur une clé usb de manière à ce qu'il démarre sans passer par le boot d'un OS il doit pouvoir démarrer sans D-D

    j'ai essayé sous linux:
    dd if=bootsect of=/dev/fd0

    1° problème il affiche que le dossier /dev/fd0 n'existe pas (il travaille dans /home je crois).
    2° Problème en le plaçant dans /dev/fd0 il risque de falloir linux pour le démarrer.
    Quelle serai la solution?
    Merci d'avance.

  2. #2
    Membre confirmé
    Homme Profil pro
    .
    Inscrit en
    Juin 2002
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : .
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2002
    Messages : 239
    Points : 567
    Points
    567
    Par défaut
    Pour qu'un secteur boot soit exécuté, encore faut-il qu'il soit chargé en mémoire.
    Et comme il censé être lancé avant l'installation d'un OS, il faut que le BIOS soit capable de le lire sur son support.

    Le BIOS peut lire les disquettes, les disques durs fixes et les CD.
    Par contre, je ne pense pas que le BIOS soit capable de lire un disque amovible installé sur une clé USB.
    Pour cela, il faut un OS capable de gérer les clés USB.

    Booter sur une clé USB me semble donc impossible avec les BIOS actuels.

  3. #3
    Membre expérimenté
    Avatar de Juju_41
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2003
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Février 2003
    Messages : 974
    Points : 1 557
    Points
    1 557
    Par défaut
    Bonjour,

    Citation Envoyé par Prof
    Booter sur une clé USB me semble donc impossible avec les BIOS actuels.
    Non ce n'est pas impossible (j'affirme ça car j'ai réussi à le faire). En revanche, de mon coté, lorsque j'ai booté sur ma clé USB pour tester un programme de boot, j'ai été obligé de la "formater" comme une disquette 1,44 Mo.

    L'intérêt est donc limité car je n'avais que 1,44 Mo d'utilisables sur une clé de 256 Mo (après je m'y suis peut-être pris comme un manche).

    Pour répondre à la question initiale, j'avais fait ça sous Windows et j'ai aucune idée de comment faire sous Linux.

  4. #4
    Membre confirmé
    Homme Profil pro
    .
    Inscrit en
    Juin 2002
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : .
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2002
    Messages : 239
    Points : 567
    Points
    567
    Par défaut
    Bonjour.

    Je souhaiterai une confirmation :
    il est possible de booter sur une clé USB sans avoir installé un OS ?

    ( l'expression " j'avais fait ça sous Windows " ne me convainc pas, puisque le message initial portait sur la question de booter sans avoir installé un OS )

  5. #5
    Membre expérimenté
    Avatar de Juju_41
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2003
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Février 2003
    Messages : 974
    Points : 1 557
    Points
    1 557
    Par défaut
    Citation Envoyé par Prof
    il est possible de booter sur une clé USB sans avoir installé un OS ?
    Oui c'est possible. J'avais utilisé un programme appelé "NTRawrite" qui permet d'écrire un fichier image sur une clé USB (entre autres).

    Mon problème de taille (1,44 Mo) venait surement du fait que j'avais pris l'image d'une disquette de boot 1,44Mo (disquette de boot MS-DOS 6.22 si mes souvenirs sont bons).

  6. #6
    Membre confirmé
    Homme Profil pro
    .
    Inscrit en
    Juin 2002
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : .
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2002
    Messages : 239
    Points : 567
    Points
    567
    Par défaut
    Merci pour la réponse.
    Décidément, on en apprend tous les jours ...

    Une recherche sur Google avec NTRawrite m'a conduit à cette page :
    http://www.hotline-pc.org/usb-boot.htm
    qui explique comment booter avec une clé USB.

    Encore faut-il que le BIOS le permette ( ce qui semble être le cas pour les BIOS récents ) et que la clé USB soit elle-même bootable (ce qui semble être assez souvent le cas ).

    Je conseille donc la lecture de cette page à popol03, l'auteur du message initial.
    Il y trouvera sans doute une réponse à ses problèmes.

  7. #7
    Membre chevronné
    Avatar de Forthman
    Homme Profil pro
    conception mécanique
    Inscrit en
    Janvier 2005
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 702
    Points : 1 905
    Points
    1 905
    Par défaut
    Bonjour,

    J'ai en ma possession 2 clefs USB, une de 256Mo et une autre de 2Go
    Je les ai formatees toutes les deux sous DOS avec installation
    du systeme (DOS donc) et elles sont toute les deux bootables,
    et avec leurs capacites respectives

    Par contre, j'ai un peu galere car je n'avais plus de PC sous DOS et plus
    une seule disquette correcte pour booter avec

    Apres avoir insere la Clef, il faut farfouiller dans le SETUP pour indiquer que
    c'est sur cette derniere qu'il faudra booter en premier.
    Par contre, si elle est retiree, et que le PC est allume, cela efface l'info du
    SETUP et il faudra y retourner pour reactiver le Boot dessus

    J'ai actuellement une carte mere de prtable (Compaq presario) qui demarre
    tres bien sur l'une ou l'autre des clefs

    a+ Francois

    Edit : le plus important, c'est que c'est le BIOS qui doit gerer la clef, sous Win$ ou Linux, c'est le systeme qui gere, et c'est pas compatible avec les
    programmes internes au Bios .

  8. #8
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Mais ensuite comment placer le programme dans le secteur Boot?

  9. #9
    Membre chevronné
    Avatar de Forthman
    Homme Profil pro
    conception mécanique
    Inscrit en
    Janvier 2005
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 702
    Points : 1 905
    Points
    1 905
    Par défaut
    Le BIOS gere la clef comme un disque, ou du moins, les interruptions 13h
    fonctionnent comme pour les disques.

    Mais au fait, peut-etre ne sais-tu pas comment le BIOS "lance" un systeme ??
    Au cas ou ce serai le cas, voici un cours super leger mais qui devrait t'aider
    a approfondir.

    Le BIOS charge le premier secteur (01h) de la premiere piste (00h)
    de la premiere tete (00h) en 0000:7C00h
    Un secteur fait 512 octets (dans 99% des cas)
    Et donc il faut se debrouiller pour placer un programme dans ces 512 octets,
    qui soit en mesure de charger tout le reste de l'OS.

    A titre d'info, le MBR d'un disque dur n'est rien d'autre qu'un secteur de BOOT
    qui lance un autre BOOT a un autre endroit du disque.
    On pourrait donc placer un MBR sur une disquette ou bien ne pas en mettre
    sur un disque dur

    quoi qu'il en soit, le plus simple est de placer les donnees du programme
    sur les secteurs en suivant, et de placer dans le secteur de BOOT un petit
    loader qui charge tout ca.

    a+ Francois

    PS: je ne sais pas si c'est realisable sous Win$ ou Linux, mais sous DOS, pas de probleme

  10. #10
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Je vais donc essayer sur un disque dur pour le début car sur clé usb ça à l'air plus dur.
    Je vais formater mon disque dur en NTFS.
    mais comment ensuite placer mon programme dans les 512 octets dont tu parle sachant que j'aurais Linux et Windows sur un autre disque dur si y a besoin d'un OS pour placer le programme.

  11. #11
    Membre expérimenté
    Avatar de Juju_41
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2003
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Février 2003
    Messages : 974
    Points : 1 557
    Points
    1 557
    Par défaut
    Effectuer directement ceci sur un disque dur : je ne vous le conseille pas (dans un premier temps).

    J'ai une manière qui à mes yeux est un peu plus lourde, mais moins "risquée" (je l'ai déja utilisée, ça fonctionne bien sous Windows) :
    - émulez un lecteur de disquette à l'aide de vfdwin par exemple
    - injectez votre secteur de boot dans le fichier image ou alors utilisez un petit programme type "Rawrite" (sur le lecteur de disquette émulé)
    - à l'aide d'un logiciel de gravure (Nero par exemple), créez un "CD Boot" en spécifiant le fichier image de la disquette comme secteur de boot (et en cochant une option du genre "émulation disquette 1.44 Mo")
    - bien entendu, utilisez un CD-RW et non un CD-R

    Avec ceci vous pourrez tester votre programme de boot en démarrant votre PC avec ce CD.

    Etant à l'école, je vous ai donné ces indications de tête donc n'hésitez pas à me demander plus d'explications

  12. #12
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    qu'est ce qui est risqué sur disque dur ? car c'est sur un ordi cobaye il n'y a pas de donnés (ça peut tout formater ).
    et sur CD ça ne m'inspire pas du tout

  13. #13
    Membre expérimenté
    Avatar de Juju_41
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2003
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Février 2003
    Messages : 974
    Points : 1 557
    Points
    1 557
    Par défaut
    Citation Envoyé par popol03
    car c'est sur un ordi cobaye il n'y a pas de donnés (ça peut tout formater ).
    Dans ce cas je retire ce que j'ai dit

  14. #14
    Membre habitué
    Avatar de TangiX
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 139
    Points : 168
    Points
    168
    Par défaut
    Citation Envoyé par popol03
    [...]mais je n'arrive pas à le rendre Bootable sur une clé usb [...]

    j'ai essayé sous linux:
    dd if=bootsect of=/dev/fd0

    1° problème il affiche que le dossier /dev/fd0 n'existe pas (il travaille dans /home je crois).
    /dev/fd0 correspond au lecteur de disquette et non a la clé USB
    Erreur de ma part ou de votre part ?
    Les clé usb sont : /dev/sda, /dev/sdb, etc.

    Bonne journée,
    TangiX

  15. #15
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    et bien je vais éssayer merci beaucoup!

  16. #16
    Membre chevronné
    Avatar de Forthman
    Homme Profil pro
    conception mécanique
    Inscrit en
    Janvier 2005
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 702
    Points : 1 905
    Points
    1 905
    Par défaut
    Si tu veux ecrire des donnees physiquement sur un disque, tu ne peux le faire
    juste avec un OS, il te faut un utilitaire particulier.

    L'OS va te donner acces au disque mais sous forme de fichiers, et il t'es impossible de connaitre (simplement) leur emplacement...

    a+ Francois

  17. #17
    Membre habitué
    Avatar de TangiX
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 139
    Points : 168
    Points
    168
    Par défaut
    Citation Envoyé par Forthman
    Si tu veux ecrire des donnees physiquement sur un disque, tu ne peux le faire
    juste avec un OS, il te faut un utilitaire particulier.

    L'OS va te donner acces au disque mais sous forme de fichiers, et il t'es impossible de connaitre (simplement) leur emplacement...

    a+ Francois
    Ceci est valable pour windows mais pas pour Linux (et Unix en général). Pour les autres OS il faut se renseigner...

    Linux voit chaque périphérique comme un fichier donc /dev/hda correspond au périphérique IDE (maitre primaire) dans sa globalité (MBR, table de partitions, partitions,...). /dev/hda1 correspond a la premiere partition.

    pour le floppy il faut utiliser /dev/fd0 (A
    pour l'usb ou le sata : /dev/sda0, /dev/sda1,....

    Voila, je poste juste pour ne pas laissez d'erreur dans les archives. On est plus vraiment dans le cadre de l'assembleur mais ca sert toujours !

    Bonne journée a tous
    A+ TangiX

Discussions similaires

  1. Rendre un programme permanent
    Par choupeo dans le forum Administration système
    Réponses: 2
    Dernier message: 08/12/2007, 15h35
  2. Rendre le programme Executable sur un autre pc
    Par bullrot dans le forum C++Builder
    Réponses: 8
    Dernier message: 29/11/2007, 19h58
  3. Comment rendre les programmes compatibles sur Vista ?
    Par wa3dbk dans le forum Windows Vista
    Réponses: 1
    Dernier message: 06/10/2007, 16h58
  4. Probleme pour rendre un programme indépendant
    Par Flow_75 dans le forum C++Builder
    Réponses: 10
    Dernier message: 18/04/2007, 07h25
  5. [Win XP][Nero 6] Rendre un CD bootable
    Par Giovanny Temgoua dans le forum Windows XP
    Réponses: 7
    Dernier message: 19/05/2006, 15h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo