Como remover iso 9660 de USB?

20

De alguma forma, consegui escrever uma imagem iso 9660 na minha unidade USB, o que faz todo o meu computador pensar que o dispositivo é na verdade um CD. Eu tentei vários métodos de remover essa partição, mas nada parece funcionar. Eu tentei fdisk, o que diz

$ fdisk -l / dev / sdb
Não é possível abrir / dev / sdb
O parted falha quando tento usá-lo neste dispositivo.

Eu até tentei

$ dd se = / dev / zero de = / dev / sdb
mas apenas trava sem saída (na tela ou no disco). No entanto, quando eu conecto o USB, ele é montado e eu posso visualizar (mas não editar) os arquivos nele.

edit : agora o resultado é

$ dd se = / dev / zero de = / dev / sdb
dd: abrindo `/ dev / sdb ': sistema de arquivos somente leitura

Também tentei reformatá-lo no Windows, mas ele chega ao final do processo de formatação e, em seguida, diz "Não foi possível formatar a unidade".

Como posso remover essa partição e colocar meu drive USB inteiro de volta ao normal novamente?

EDIT 1 : Tentar um simples mkfsnão funciona:

$ sudo mkfs -t vfat / dev / sdb
mkfs.vfat 3.0.0 (28 de setembro de 2008)
mkfs.vfat: Não tentará fazer sistema de arquivos no dispositivo de disco completo '/ dev / sdb' (use -I se quiser)
Eu não posso fazer mkfssobre /dev/sdb1porque não existe tal partição, como mostrado:
$ ls / dev | grep sdb
sdb

EDIT 2 : Esta é a informação postada pelo dmesg quando eu conecto o dispositivo em:

$ dmesg
.
. (recorte)
.
usb 2-1: Novo dispositivo USB encontrado, idVendor = 058f, idProduct = 6387
usb 2-1: Novas strings de dispositivos USB: Mfr = 1, Product = 2, SerialNumber = 3
usb 2-1: produto: armazenamento em massa
usb 2-1: Fabricante: Genérico
usb 2-1: SerialNumber: G0905000000000010885
usb-storage: dispositivo encontrado em 4
usb-storage: aguardando que o dispositivo seja configurado antes de digitalizar
usb-storage: verificação de dispositivos concluída
scsi 6: 0: 0: 0: Unidade FLASH de Acesso Direto AU_USB20 8.07 PQ: 0 ANSI: 2
sd 6: 0: 0: 0: [sdb] 4069376 setores de hardware de 512 bytes (2084 MB)
sd 6: 0: 0: 0: [sdb] A proteção contra gravação está desativada
sd 6: 0: 0: 0: [sdb] Modo Sentido: 03 00 00 00
sd 6: 0: 0: 0: [sdb] Supondo cache de unidade: escreva através de
sd 6: 0: 0: 0: [sdb] 4069376 setores de hardware de 512 bytes (2084 MB)
sd 6: 0: 0: 0: [sdb] A proteção contra gravação está desativada
sd 6: 0: 0: 0: [sdb] Modo Sentido: 03 00 00 00
sd 6: 0: 0: 0: [sdb] Supondo cache de unidade: escreva através de
 sdb: tabela de partições desconhecida
sd 6: 0: 0: 0: [sdb] Disco removível SCSI anexado
sd 6: 0: 0: 0: anexado scsi genérico sg2 tipo 0
Extensões ISO 9660: Microsoft Joliet Nível 3
Extensões ISO 9660: RRIP_1991A
SELinux: inicializado (dev sdb, tipo iso9660), usa genfs_context
CE: hpet aumentando min_delta_ns para 15000 nsec
Isso mostra que o dispositivo está formatado como ISO 9660 e é /dev/sdb .

EDIT 3 : Esta é a mensagem que eu encontro na parte inferior dmesgdepois de executar cfdiske escrever uma nova tabela de partição no disco:

SELinux: inicializado (dev sdb, tipo iso9660), usa genfs_context
sd 17: 0: 0: 0: [sdb] Dispositivo não pronto: Sense Key: Not Ready [atual] 
sd 17: 0: 0: 0: [sdb] Dispositivo não está pronto: <> ASC = 0xff ASCQ = 0xffASC = 0xff <> ASCQ = 0xff
end_request: erro de E / S, dev sdb, setor 0
Erro de E / S de buffer no sdb do dispositivo, bloco lógico 0
gravação de página perdida devido a erro de E / S em sdb

a_m0d
fonte
Tem certeza de que está sempre carregando em / dev / sdb? Se você olhar o final de / var / log / messages após o dispositivo ser instalado, verá as mensagens de log relacionadas ao seu automount.
26813 Mas as
3
Tem certeza de que não está atualmente montado com cdfs ou o equivalente?
RBerteig
1
@ Slink84: Eu acho que eu só fui sudo dd if=some.iso of=/dev/sdb- Não me lembro de fazer qualquer outra coisa que poderia fazê-lo
a_m0d
1
A imagem era uma imagem padrão eeebuntu-3.0.0 - não sei quem faz o dispositivo, mas eu acho que é a Toshiba
a_m0d
1
Do par VID / PID, é feito pela "Alcor Micro Corp.", e é uma "Transcend JetFlash Flash Drive". Eu uso a lista em linux-usb.org/usb.ids para procurar essas coisas.
RBerteig

Respostas:

7

Ok, acontece que neste caso, algo (possivelmente quando eu escrevi o sistema de arquivos ISO-9660 para a unidade) desencadeou alguma forma de proteção contra gravação interna na unidade. Não chaves de proteção / retenção de gravação externas, mas ainda assim é a saída dmesgquando eu corro

dd if=/dev/zero of=/dev/sdb

como root:

sd 9: 0: 0: 0: [sdb] Adicionar. Sentido: Escreva protegido
end_request: erro de E / S, dev sdb, setor 4028744
sd 9: 0: 0: 0: [sdb] Resultado: hostbyte = DID_OK driverbyte = DRIVER_SENSE, SUGGEST_OK
sd 9: 0: 0: 0: [sdb] Sense Key: proteção de dados [atual] 
Info fld = 0x0

Observe os comentários sobre a proteção! No entanto, quando eu conecto o dispositivo, recebo

scsi 10: 0: 0: 0: Unidade FLASH de Acesso Direto AU_USB20 8.07 PQ: 0 ANSI: 2
sd 10: 0: 0: 0: [sdb] 4069376 setores de hardware de 512 bytes (2084 MB)
sd 10: 0: 0: 0: [sdb] A proteção contra gravação está desativada
sd 10: 0: 0: 0: [sdb] Modo Sentido: 03 00 00 00
sd 10: 0: 0: 0: [sdb] Assumindo o cache de unidade: escrever através
sd 10: 0: 0: 0: [sdb] 4069376 setores de hardware de 512 bytes (2084 MB)
sd 10: 0: 0: 0: [sdb] A proteção contra gravação está desativada
sd 10: 0: 0: 0: [sdb] Modo Sentido: 03 00 00 00
sd 10: 0: 0: 0: [sdb] Assumindo o cache de unidade: escrever através

Note que esta mensagem diz que o dispositivo não está protegido contra gravação! Então, infelizmente, parece que o disco teve (ou seja, kaput ).

a_m0d
fonte
Eu ouvi no passado sobre dispositivos flash que se tornaram bricked se você já usou um sistema de arquivos não-FAT com eles (porque eles usaram o FAT para saber quais blocos não eram usados ​​e poderiam ser descartados). Eu não tenho ouvido falar disso há muito tempo, e não consegui encontrar nada sobre isso com uma rápida pesquisa no Google.
4704 CesarB
Até agora eu encontrei uma pessoa mencionar a dependência FAT: linux.derkeiler.com/Mailing-Lists/Debian/2008-08/msg00761.html
CesarB
Lamento saber que ele está morto ... Heh, eu deveria estar feliz por não ter conseguido reproduzir o seu problema:] Embora eu tenha tentado em uma velha unidade 'descartável', ainda seria triste perder isso caminho.
24822 Kirill Strizhak
sim, especialmente desde que tinha apenas uma semana! oh bem ...
a_m0d
1
Encontrei o que eu estava procurando: lkml.org/lkml/2009/3/16/363 ("Alguns fabricantes de SDDs (eu não sei quais) estão realmente examinando a tabela de partições e fazendo coisas diferentes. Eu sei disso porque eles são permanentemente emparedada se alguém escreve uma tabela de partição inválida ").
CesarB
6

Eu sou novo neste material de administração do sistema Linux, então quando eu tive exatamente o mesmo problema eu cutuquei e cutuquei sem loucura ao meu método mas consegui remover o iso9660 fs e recuperar o pen drive.

sudo fdisk -l  /dev/sdb1

retornou

Disk /dev/sdb1: 16.0 GB, 16037969920 bytes
64 heads, 32 sectors/track, 15295 cylinders, total 31324160 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I>/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x57155aa7

     Device Boot      Start         End      Blocks   Id  System
/dev/sdb1p1            2048    31324159    15661056    5  Extended

Então eu tentei

sudo fdisk /dev/sdb1

Command (m for help): m
Command action
  . . .

Seguido por

Command (m for help): d Extended
Selected partition 1

Command (m for help): v
Remaining 31324159 unallocated 512-byte sectors

Em seguida, quando solicitado novamente selecionado para fdisk para criar uma tabela vazia de partições (algo que eu imaginei que eu poderia substituir com o que eu queria mais tarde)

Command (m for help): v
Remaining 31324159 unallocated 512-byte sectors

Command (m for help): o
Building a new DOS disklabel with disk identifier 0xea06616f.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 22: Invalid argument.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

Eu levei as mensagens retornadas para significar que eu pelo menos "quebrei" o iso9660 fs então passou a tentar mkfs

sudo mkfs /dev/sdb1

mke2fs 1.41.14 (22-Dec-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
979200 inodes, 3915520 blocks
.195776 blocks (5.00%) reserved for the super user
First data block=0
.Maximum filesystem blocks=4009754624
120 block groups
32768 blocks per group, 32768 fragments per group
8160 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208

Writing inode tables: done                            
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 28 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

Tudo isso me deixou com o diretório "lost + found" no pen drive.

sudo mount /dev/sdb1 /media/
ls /media/
lost+found

Finalmente, fui ao site do Ubuntu ( http://www.ubuntu.com/download/ubuntu/download , seção 2) e usei o stick para criar uma imagem inicializável do Ubuntu para uso experimental, e isso me permitiu. A beleza das imagens do Ubuntu feitas no bastão dessa maneira é que elas podem ser facilmente apagadas e o bastão pode ser recuperado para outro uso.

Eu menciono este último passo porque, em retrospecto, me pergunto se eu teria feito exatamente isso em primeiro lugar que teria funcionado, não sei. Como mencionei, eu sou novo neste material do Linux e estou tentando diferentes distro's (por exemplo, Fedora, Ubuntu, etc.) em CDs ao vivo com qualquer mídia que seja mais conveniente, e com certeza vou quebrar muitas coisas ao longo do caminho.

David Cantwell
fonte
Eu adoraria tentar seus passos para ver se isso iria consertar isso, mas eu não pareço mais ter o pau, então infelizmente eu não sei se eles ajudariam. No entanto, isso ainda pode ser útil para outras pessoas com o mesmo problema.
a_m0d
5
mkdosfs -I /dev/sdb

irá criar um sistema de arquivos vfat na unidade. O -I tem que ser passado se você quiser que o sistema de arquivos seja criado em toda a unidade e não em uma partição. Se você deseja particionar a unidade primeiro, use fdisk. É claro que o fdisk não consegue ler a unidade agora, porque não possui partições. Mas tenho certeza que será capaz de escrever para ele.

Kim
fonte
Não funciona - apenas imprime o número da versão e sai. Além disso, fdisk é "não é possível escrever / dev / sdb"
a_m0d
Eu apenas tentei o comando e ele escreve para o dispositivo especificado. Também imprime apenas o número da versão. Você pode testar isso com um arquivo regular que você criou com dd. Você pode ver as mudanças que faz com od. Meu palpite é que é um problema de hardware.
Kim
1
isso funcionou para eu remover uma imagem inicializável do Centos quando todas as soluções acima falharam.
ღ uі
2

Olhando para o dmesgtrecho, parece que algo está montando automaticamente a unidade (verifique com mount). Antes de fazer qualquer coisa com isso, você deve desmontá-lo à mão.

Em seguida, zere o bloco com a tabela de partições ( dd if=/dev/zero of=... bs=512 count=1) e execute uma ferramenta de particionamento para recriar uma tabela de partições vazia. Depois disso, desconecte e reconecte (não deve ser necessário, mas ...) e crie / formate as partições desejadas nele. Depois de criar as partições (talvez você tenha que desconectar e reconectar novamente), você deve ter /dev/sdb1ou algo parecido, que é onde você deve criar o sistema de arquivos.

Observe que todas as etapas devem ser feitas como raiz (com sudoou equivalente). Tenha cuidado para não escrever o nome do dispositivo errado, ou você pode limpar o seu disco rígido!

CesarB
fonte
1
Eu fiz isso, mas mesmo que o disco inteiro pareça estar cheio de zeros, ele ainda monta e lê o disco!
24440 a_m0d
1

Ainda sinto que estamos assumindo algo que se tornará falso. Como o dispositivo é legível, essa linha permitirá pelo menos que você veja os dados por si mesmo, em vez de depender das interpretações dos outros programas.

dd if = / dev / sdb count = 1 | xxd -g1 -u

Além disso, talvez possamos separar problemas com o nó dev de problemas com o que está no dispositivo, forçando-o para outra porta. Conecte-o a outro conector USB ou conecte outro drive primeiro para ocupar o sdb.

gbarry
fonte
hmm ... usando este comando me diz que o dispositivo está cheio de zeros, o que é provavelmente porque eu finalmente consegui dd if=/dev/zero of=/dev/sdbrodar nele. Mas o fedora ainda monta o dispositivo como um ISO9660 fs quando está conectado!
24440 a_m0d
O Linux ainda usa o / etc / fstab? É onde essas "associações" costumavam ser armazenadas.
gbarry
Não, está usando (eu acho) udev, ou seja o que for que monta automaticamente a unidade.
24440 a_m0d
1

Atualmente seu drive USB não tem nenhuma tabela de partição, o sistema de arquivos iso9660 fica diretamente em todo o disco (como um cdrom)

sd 6:0:0:0: [sdb] Assuming drive cache: write through
 sdb: unknown partition table

Eu acho que você precisa fazer uma partição primeiro

sudo cfdisk /dev/sdb

(certifique-se de que não esteja montado antes) no aplicativo fdisk crie uma nova partição.

depois disso, faça o sistema de arquivos na nova partição

sudo mkfs -t vfat /dev/sdb1
Joakim Elofsson
fonte
Tentei isso; O cfdisk não produz nenhuma mensagem de erro, mas uma rápida olhada nos dmesgmostra que há realmente uma mensagem de erro. (veja Editar 3 na questão acima)
a_m0d
1

Eu tive exatamente o mesmo problema que você. No entanto, consegui encontrar uma solução a partir de um local surpreendente. Um laptop antigo com o Windows 98SE, que é o último sistema Windows que eu já possuí. De qualquer forma, basta colocá-lo e quando você tentar acessar a unidade, o Windows perguntará se você deseja formatá-lo. Clique em sim e você terá uma unidade formatada em fat16 totalmente funcional. Eu não sei se funciona com versões mais novas do Windows. Boa sorte.

Anônimo
fonte
Todo o caminho até o Windows 8 :)
Sebastian Godelet
1

Ontem à noite eu fiz

dd if=fedora.iso of=sdx  

Após quatro horas, eu tinha um tijolo iso9660 não inicializável e imutável. Seguindo a linha de pensamento de David, eu chamei o 'criador de disco de inicialização' do Ubuntu (Type 'startup disk creator' no painel), e simplesmente selecionei 'apagar'. Isso fez isso.

A unidade USB foi então relatada como FAT32 e está tudo bem.

dan
fonte
Às vezes é apropriado usar um martelo como este. Eu me pergunto o que foi nos primeiros setores da unidade.
vgoff
0

Remova a unidade e veja se você ainda pode ler a partir dela. Gostaria de saber se de alguma forma / dev / usb (ou onde quer que você leia) se tornou um diretório de arquivos comum.

gbarry
fonte
Tentei isso - quando eu ligá-lo de volta, monta tudo bem, e eu posso ler tudo bem. De acordo com mountisso, é um sistema de arquivos iso9660. No entanto, o gparted apenas mostra 2 GB de espaço não alocado na unidade. ddreclama que / dev / sdb é um sistema de arquivos somente de leitura
a_m0d as
0

Você já tentou montá-lo novamente com a opção -t?

umount / dev / sdb
montagem sudo -t vfat / dev / sdb / mnt / point

Se isso não funcionar, vou tentar reproduzi-lo mais tarde, quando chegar em casa. Parece um problema interessante. Vai ser divertido mexer com:]

Kirill Strizhak
fonte
Hah, nah, não funciona, porque mountverifica o tipo de arquivo primeiro
a_m0d
Sim, suspeitava tanto:] Ok, não mais idéias 'fora do azul'.
4702 Kirill Strizhak
0

Talvez com um simples

mkfs -t vfat /dev/sdb1
Vinko Vrsalovic
fonte
Não funciona - ver editar a questão
a_m0d
0

A melhor e mais adequada maneira de fazer isso é:

# wipefs --all /dev/sdX

A partir do wipefsmanual:

O wipefs pode apagar assinaturas de sistema de arquivos, raid ou tabela de partições (strings mágicas) do dispositivo especificado para tornar as assinaturas invisíveis para o libblkid.

O wipefs não apaga o sistema de arquivos nem outros dados do dispositivo. Quando usado sem nenhuma opção, o wipefs lista todos os sistemas de arquivos visíveis e os deslocamentos de suas assinaturas básicas.

wipefs chama o ioctl BLKRRPART quando ele apagou uma assinatura de tabela de partições para informar o kernel sobre a mudança.

Isso tem muitas vantagens, como informar o kernel sobre a mudança (para que você não tenha erros ao formatar depois), não apagar dados nem sistemas de arquivos , e assim por diante.

emi
fonte
-1

O U3 tem um utilitário para remover sua partição U3. Ele também remove a partição / dispositivo criado pelo utilitário que cria a iso 9660. Isso foi confirmado apenas em um pendrive u3, mas ele pode ser formatado agora e recuperar totalmente o espaço inteiro como uma unidade flash. Você pode tentar.

knockNrod
fonte