Bonjour,
J'ai une petite question : j'ai rechercher des informations sur Internet, mais je n'ai trouvé que des informations fragmentaire.
J'aurais voulu savoir si vous connaissez des bonnes documentations, complète sur les partitions d'un disque dur (j'entends par la : mbr, table des partitions)
Si vous savez ou je peut trouver une sorte de RFC sur le partitionnement ce serait super.
Les informations que je connais :
structure même de la table des partitions : son utilisation pour retrouver les partitions, le fonctionnement des partitions logiques.
Le type d'informations que je cherche : J'ai lu a que la 1er partition devait commençais au 1 secteur, alors que les autres partitions devait commençais au secteur 0 (ou ce sont les cylindres).
Mon but est d'écrire des partitions (ajouter, ...).
Donc il me faut des informations précises (je ne voudrais pas que le programme lâches des .... sur le PC de l'utilisateur).
Merci à tous
# bout de code perso
Posté par vincent LECOQ (site web personnel) . Évalué à 2.
Il y a pas mal de docs et des liens vers d'autres sites tres utiles pour ce type de projet.
Voici un morceau de code perso (la fin d'un un boot sector):
;--------------------------------------------------------------------
;; NOP jusqu'a 446
;times 446-($-$$) db 144 ; reste du code
mbr:
table: ;; Voici la table des partitions
part1:
part1_boot_flag: db 0 ;;0 0 = inactive, 80h = active
part1_begin_head: db 0 ;;1 Tête de début
part1_begin_sector: db 0 ;;2 Secteur de début (*)
part1_begin_cyl: db 0 ;;3 Cylindre de début (*)
part1_type: db 0 ;;4 Type : 83h = Linux, bh = Win95/FAT32, ...
part1_end_head: db 0 ;;5 Tête de fin
part1_end_sector: db 0 ;;6 Secteur de fin (*)
part1_end_cyl: db 0 ;;7 Cylindre de fin (*)
part1_start_sector: dd 0 ;;8 Nombre de secteurs avant la partition (donc num\uffffro du 1e secteur en LBA) (**)
part1_sector_count: dd 0 ;;9 Nombre de secteurs dans la partition (**)
part2:
part2_boot_flag: db 0 ;; 0 = inactive, 80h = active
part2_begin_head: db 0 ;; Tête de début
part2_begin_sector: db 0 ;; Secteur de début (*)
part2_begin_cyl: db 0 ;; Cylindre de début (*)
part2_type: db 0 ;; Type : 83h = Linux, bh = Win95/FAT32, ...
part2_end_head: db 0 ;; Tête de fin
part2_end_sector: db 0 ;; Secteur de fin (*)
part2_end_cyl: db 0 ;; Cylindre de fin (*)
part2_start_sector: dd 0 ;; Nombre de secteurs avant la partition (donc numéro du 1e secteur en LBA) (**)
part2_sector_count: dd 0 ;; Nombre de secteurs dans la partition (**)
part3:
part3_boot_flag: db 0 ;; 0 = inactive, 80h = active
part3_begin_head: db 0 ;; Tête de début
part3_begin_sector: db 0 ;; Secteur de début (*)
part3_begin_cyl: db 0 ;; Cylindre de début (*)
part3_type: db 0 ;; Type : 83h = Linux, bh = Win95/FAT32, ...
part3_end_head: db 0 ;; Tête de fin
part3_end_sector: db 0 ;; Secteur de fin (*)
part3_end_cyl: db 0 ;; Cylindre de fin (*)
part3_start_sector: dd 0 ;; Nombre de secteurs avant la partition (donc numéro du 1e secteur en LBA) (**)
part3_sector_count: dd 0 ;; Nombre de secteurs dans la partition (**)
part4:
part4_boot_flag: db 0 ;; 0 = inactive, 80h = active
part4_begin_head: db 0 ;; Tête de début
part4_begin_sector: db 0 ;; Secteur de début (*)
part4_begin_cyl: db 0 ;; Cylindre de début (*)
part4_type: db 0 ;; Type : 83h = Linux, bh = Win95/FAT32, ...
part4_end_head: db 0 ;; Tête de fin
part4_end_sector: db 0 ;; Secteur de fin (*)
part4_end_cyl: db 0 ;; Cylindre de fin (*)
part4_start_sector: dd 0 ;; Nombre de secteurs avant la partition (donc numéro du 1e secteur en LBA) (**)
part4_sector_count: dd 0 ;; Nombre de secteurs dans la partition (**)
signature:
dw 0xAA55 ;; magic number (***)
;; (*) Ces octets acceptent le meme format que cl et ch pour l'interruption 13h
;; (**) En fait, le format CHS (Cyl/Heads/Sect) sur 3 octets ne permet pas de
;; placer une partition apres le 1024e cylindre. Ces indications de 32 bits permettent
;; de realiser ce type de partitions. Malheureusement, elles ne sont pas accessibles
;; depuis le BIOS qui utilise le format CHS , il faut donc y acceder en communiquant
;; directement avec le controleur IDE)
;; (***) Les processeurs Intel inversant les octets quand on ecrit un word, dw aa55h quivaut db 55h, aah.
Pour chaque partition tu doit indiquer le type. Il y a un type special qui definit en fait une partition etendue, l'adresse indiquée point sur ce que l'on appelle un EBR. C'est comme un mbr mais avec seulement deux entrées au lieu de quatres : une pour la partition, l'autre pour la suite (etendue etc ... poupées russes quoi).
[^] # Re: bout de code perso
Posté par phoenix (site web personnel) . Évalué à 1.
# Operating System Resource Center
Posté par Pierre Palatin (site web personnel) . Évalué à 3.
Tu trouveras la toutes les docs & les détails sur ce qu'il faut savoir pour faire mumuse avec une machine quand tu es (vraiment) au niveau système (et donc notamment les infos sur partitions & filesystems).
[^] # Re: Operating System Resource Center
Posté par phoenix (site web personnel) . Évalué à 1.
# Rien a voire
Posté par doublehp (site web personnel) . Évalué à 0.
# Livre
Posté par Nicolas Bernard (site web personnel) . Évalué à 3.
[^] # Re: Livre
Posté par phoenix (site web personnel) . Évalué à 1.
# Le site de jc Bellamy
Posté par Goffi (site web personnel, Mastodon) . Évalué à 2.
http://www.bellamyjc.net/(...) (menu multiboot)
Lecture très intéressante vivement recommandée, on y apprend beaucoup (on y trouve par exemple l'explication de la zone fantome des 7,8 Mo).
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.