3 votes

Mon USB ne produit pas d'image correctement

J'ai un système à double démarrage (Windows 10 et Ubuntu, le démarrage rapide de Windows est désactivé), et j'ai donc plusieurs partitions sur mon disque dur. Au démarrage, la clé USB s'affiche bien sur Ubuntu, et fonctionne de toutes les manières que l'on peut attendre d'elle.

Cependant, lorsque je monte la partition de données Microsoft de mon disque dur (du moins, je suis presque sûr que c'est la cause), il n'est plus possible de formater la clé USB ou de l'imager de quelque manière que ce soit.

J'ai essayé dd en fait, c'est là que j'ai besoin qu'il fonctionne car en utilisant dd est beaucoup plus facile que d'utiliser le créateur de disque de démarrage Ubuntu (je conçois un système d'exploitation au cas où quelqu'un voudrait le savoir, et c'est DÉJÀ DUR SANS PROBLÈMES d'USB !!!). Je ne peux pas le monter car il manque un système de fichiers depuis la dernière imagerie. Cependant, si je le formate avant d'accéder à Microsoft (ou à l'erreur qui se produit que vous verrez dans un moment), il fonctionne bien comme un disque USB ordinaire. Je ne peux simplement pas le reformater.

Voici une capture d'écran de l'erreur :

enter image description here

N'hésitez pas à me demander si vous avez des questions ou si vous souhaitez voir plus de détails.

Commandes :

root@my_comp:/# df
Filesystem     1K-blocks    Used Available Use% Mounted on
udev             6100104       0   6100104   0% /dev
tmpfs            1224076    9820   1214256   1% /run
/dev/sda5      382559396 9121780 353981616   3% /
tmpfs            6120368   51716   6068652   1% /dev/shm
tmpfs               5120       4      5116   1% /run/lock
tmpfs            6120368       0   6120368   0% /sys/fs/cgroup
/dev/sda1         262144   30636    231508  12% /boot/efi
tmpfs            1224076      48   1224028   1% /run/user/1000
/dev/sr0         4442656 4442656         0 100% /media/devepere/BOPC_1E1

Cela est logique puisqu'il n'y a pas de système de fichiers sur le disque : il a été complètement écrasé et je n'ai pas encore implémenté de table FAT dans mon bootloader.

root@my_comp:/# parted -ls
Model: ATA HGST HTS721010A9 (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system     Name                          
Flags
 1      1049kB  274MB   273MB   fat32           EFI system partition          
boot, esp
 2      274MB   290MB   16.8MB                  Microsoft reserved 
partition  msftres
 3      290MB   589GB   588GB   ntfs            Basic data partition          
msftdata
 5      589GB   987GB   398GB   ext4
 6      987GB   1000GB  12.8GB  linux-swap(v1)
 4      1000GB  1000GB  523MB   ntfs            Basic data partition          
hidden, diag

Model: Generic Flash Disk (scsi)
Disk /dev/sdb: 1028MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  1028MB  1027MB  primary

Warning: Unable to open /dev/sr0 read-write (Read-only file system).  
/dev/sr0 has been opened read-only.
Error: /dev/sr0: unrecognised disk label
Model: TSSTcorp CDDVDW SU-228GB (scsi)
Disk /dev/sr0: 4549MB
Sector size (logical/physical): 2048B/2048B
Partition Table: unknown
Disk Flags: 

J'ai aussi oublié de mentionner que j'ai un disque de jeu dans mon ordinateur, c'est sr0. Et il ne devrait pas lire 'msdos', puisqu'il n'y a pas de véritable partition dessus.

root@my_comp:/# lsblk -f
NAME   FSTYPE  LABEL    UUID                                 
MOUNTPOINT
sda                                                          
sda1 vfat    SYSTEM   92EA-85A0                            /boot/efi
sda2                                                       
sda3 ntfs    OS       128AECEA8AECCAF5                     
sda4 ntfs    RECOVERY 18565C8D565C6D8E                     
sda5 ext4             d59773a2-e22e-4e57-945e-6d447600da16 /
sda6 swap             1ac79668-effe-46bc-9f71-6686c3ad8fcf [SWAP]
sr0    iso9660 BOPC_1E  2006-10-12-03-54-00-00               
/media/devepere/BOP

Encore une fois, il n'y a pas de système de fichiers, donc cela a un certain sens.

root@my_comp:/# lsblk -m
NAME     SIZE OWNER       GROUP MODE
sda    931.5G YANN-MARTEL disk  brw-rw----
sda1   260M YANN-MARTEL disk  brw-rw----
sda2    16M YANN-MARTEL disk  brw-rw----
sda3   548G YANN-MARTEL disk  brw-rw----
sda4   499M YANN-MARTEL disk  brw-rw----
sda5 370.8G YANN-MARTEL disk  brw-rw----
sda6    12G YANN-MARTEL disk  brw-rw----
sr0      4.2G YANN-MARTEL cdrom brw-rw----

Juste pour clarifier, je suis complètement J'écrase le disque régulièrement parce que c'est comme ça que je teste mon système d'exploitation. Il n'y a pas de table de partition. Mon problème est que je ne peux plus écrire sur le disque après avoir reçu cette erreur : c'est comme si le système d'exploitation perdait toute capacité à écrire sur le lecteur USB ou à le formater de quelque manière que ce soit.

Et d'ailleurs, cela se produit pour chaque disque USB que j'ai imagé, donc le problème est bien local à ubuntu.

Autres modifications...

1 :

J'ai utilisé l'application 'disk' qui est fournie en natif avec Linux pour tester le formatage de l'USB. L'erreur apparaît généralement lorsque (ou avant) je fais cela, bien qu'elle soit connue pour apparaître parfois peu de temps après le démarrage, et systématiquement lorsque j'ouvre la partition Microsoft sur mon disque, dans ce cas j'utilise nautilus, donc une application gnome qui échoue.

Tout ce que je sais, c'est qu'après avoir obtenu l'erreur, l'USB ne répond pas aux tentatives d'écriture. dd s'exécute et se termine, mais il prend beaucoup moins de temps à s'exécuter et n'écrit pas réellement sur le disque.

2 :

Mon image contient le secteur MBR avec la fin habituelle de 0xAA55 mais NE CONTIENT PAS DE SYSTÈME DE FICHIERS (OU DE TABLE DE PARTITION) D'AUCUNE SORTE . Je crée un COMPLETEMENT NOUVEAU OPERATING SYSTEM (ET bootloader), et je n'ai pas encore implémenté de table de partition parce que je devrais l'ÉCRIRE MOI-MÊME.

3 :

Pour mémoire, lsblk sans drapeaux montre effectivement l'USB comme un bloc avant et après l'erreur :

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
[...]
sdb      8:16   1   980M  0 disk 
[...]

Et oui, la taille est correcte ; il s'agit d'une clé USB assez ancienne. Je branche mes 32 gigas et j'obtiens quelque chose qui ressemble à 32 gigas.

Et voici lsblk -f AVANT que l'erreur affichée ne se déclenche pour une raison quelconque :

NAME   FSTYPE  LABEL    UUID                              MOUNTPOINT
sda                                                          
sda1 vfat    SYSTEM   92EA-85A0                            /boot/efi
sda2                                                       
sda3 ntfs    OS       128AECEA8AECCAF5                     
sda4 ntfs    RECOVERY 18565C8D565C6D8E                     
sda5 ext4             d59773a2-e22e-4e57-945e-6d447600da16 /
sda6 swap             1ac79668-effe-46bc-9f71-6686c3ad8fcf [SWAP]
sdb                
sr0    iso9660 BOPC_1E  2006-10-12-03-54-00-00    
/media/devepere/BOP

Vous pouvez clairement voir que le disque (sdb) est reconnu, et qu'aucun système de fichiers ne lui est associé.

Pour poursuivre le raisonnement, voici ce qui se passe lorsque j'essaie de monter mon disque USB non formaté :

mount: wrong fs type, bad option, bad superblock on /dev/sdb,
       missing codepage or helper program, or other error

       In some cases useful info is found in syslog - try
       dmesg | tail or so.

4 :

Ce disque, utilisant un chargeur de démarrage MBR et n'ayant aucune sorte de table de partition, est très difficile à reconnaître pour mon PC de jeu à démarrage UEFI (celui que j'utilise en ce moment). En tant que tel, j'ai un ordinateur de test beaucoup plus ancien qui n'a besoin que de la signature de démarrage pour charger le chargeur de démarrage en mémoire, puisque je veux avoir quelque chose à démarrer avant de le rendre démarrable sur toutes les machines.

En tant que tel, il ne peut pas démarrer sur la plupart des machines.

Cependant, j'écris du code sur mon ordinateur ordinaire, je le compile en une image binaire, puis j'écris l'image sur mon drve usb. Ce que je voulais dire, c'est qu'avant que l'erreur ne se déclenche, ce processus d'imagerie fonctionne bien.

Bien que lorsque l'erreur se produit, quelle que soit la manière dont elle se produit, à partir de ce moment-là, je ne peux pas écrire sur l'USB. C'est un problème MAJEUR dans le développement, parce que je ne peux pratiquement pas écrire 10 lignes de code assembleur sans le tester d'abord, sinon je passerai trois fois plus de temps à déboguer le code parce que je n'ai tout simplement aucune idée de l'endroit où ça a mal tourné.

Merci pour votre temps, je sais que ce post est extrêmement long.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X