AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 408186
Accepted
ywiyogo
ywiyogo
Asked: 2017-12-02 05:02:02 +0800 CST2017-12-02 05:02:02 +0800 CST 2017-12-02 05:02:02 +0800 CST

Como modificar um stick USB para ter um nó de dispositivo como /dev/sda1 em vez de /dev/sda?

  • 772

Eu tenho uma regra udev para sticks USB com formato fat32. A regra contém tais atributos:

SUBSYSTEM=="block", KERNEL=="sd?1", ...

Normalmente, funciona muito bem para os pendrives que testei até agora, pois a maioria dos pendrives são representados no nó do dispositivo como /dev/sda1ou /dev/sdb1.

Agora, tenho um USB especial que possui um nó de dispositivo como /dev/sda. O blkidcomando deste stick USB retorna tais saídas:

/dev/sda: UUID="AC9E-6C58" TYPE="vfat"

Comparado com o normal ( /dev/sda1), sinto falta do PARTUUIDatributo.

Além disso, o comando sfdisk -l /dev/sdaretorna estas saídas:

Disk /dev/sda: 1021 cylinders, 247 heads, 62 sectors/track
Units: cylinders of 7840768 bytes, blocks of 1024 bytes, counting from 0
   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sda1          0       -       0          0    0  Empty
/dev/sda2          0       -       0          0    0  Empty
/dev/sda3          0       -       0          0    0  Empty
/dev/sda4          0       -       0          0    0  Empty

Este USB tem 0 na /dev/sda1linha. No entanto, o stick USB normal possui essas entradas:

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sda1          0+   2703-   2704-   7835620    b  W95 FAT32
            start: (c,h,s) expected (0,1,11) found (0,0,57)
            end: (c,h,s) expected (1023,125,46) found (975,125,46)
/dev/sda2          0       -       0          0    0  Empty
/dev/sda3          0       -       0          0    0  Empty
/dev/sda4          0       -       0          0    0  Empty

Com base nesta discussão , isso significa que o stick USB não possui uma tabela de partições.

Se eu não quiser alterar minhas regras do udev, como posso modificar este pendrive? Uma nova partição normal com a ferramenta Windows ou Gparted não altera esse layout.

Se não for possível alterar o layout da partição, como posso alterar minha regra udev para que ela possa lidar com o pendrive que reconhece em /dev/sda ou /dev/sda1?

Obrigado.

Atualização: alterei o termo "mount" para "nó do dispositivo" para evitar confusão. Graças a Austin.

linux usb
  • 2 2 respostas
  • 1320 Views

2 respostas

  • Voted
  1. Best Answer
    Austin Hemmelgarn
    2017-12-02T05:28:57+08:002017-12-02T05:28:57+08:00

    Desde que você não tenha dados que precise manter no stick USB e que apareça como /dev/sda, execute o seguinte como root:

    wipefs -a /dev/sda
    

    Isso apagará a assinatura FAT32 (e quaisquer outras assinaturas do sistema de arquivos também) do dispositivo para que apareça como vazio, ponto em que o GParted e o gerenciador de disco do Windows devem criar uma tabela de partições quando você for reformatá-lo.

    Além disso, apenas para esclarecer a terminologia, o kernel não 'monta' dispositivos em /dev, ele cria nós de dispositivo que podem ser usados ​​para interagir com os dispositivos (embora, se você tiver o udev, pode estar criando os nós de dispositivo em vez de o kernel), mas a montagem é uma operação que se refere especificamente a sistemas de arquivos (mais especificamente, 'montar X em Y' implica que X contém um sistema de arquivos e você está tornando esse sistema de arquivos acessível diretamente no local Y, o que não é o que está acontecendo quando os nós do dispositivo são criados).

    • 2
  2. ywiyogo
    2017-12-02T06:45:20+08:002017-12-02T06:45:20+08:00

    Outra solução no Windows é usando diskpart:

    1. Desconecte o pendrive
    2. Execute o terminal do Windows ou digite cmdno campo de pesquisa inicial do Windows.
    3. Digite diskparte digite list diskna nova janela do DiskPart para ver os dispositivos atuais
    4. Conecte o stick USB e execute novamente list diskpara observar o número correto do disco do stick USB
    5. Digite select disk=<number>. Substitua <number>pelo número do disco do stick USB que você deseja redefinir.
    6. Execute cleane convert mbrcrie uma nova tabela de partições no pendrive.
    7. Execute create partition primaryo comando para criar uma nova partição primária.
    • 0

relate perguntas

  • Existe uma maneira de fazer ls mostrar arquivos ocultos apenas para determinados diretórios?

  • Inicie/pare o serviço systemd usando o atalho de teclado [fechado]

  • Necessidade de algumas chamadas de sistema

  • astyle não altera a formatação do arquivo de origem

  • Passe o sistema de arquivos raiz por rótulo para o kernel do Linux

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Matriz JSON para bash variáveis ​​usando jq

    • 4 respostas
  • Marko Smith

    A data pode formatar a hora atual para o fuso horário GMT? [duplicado]

    • 2 respostas
  • Marko Smith

    bash + lê variáveis ​​e valores do arquivo pelo script bash

    • 4 respostas
  • Marko Smith

    Como posso copiar um diretório e renomeá-lo no mesmo comando?

    • 4 respostas
  • Marko Smith

    conexão ssh. Conexão X11 rejeitada devido a autenticação incorreta

    • 3 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Marko Smith

    comando systemctl não funciona no RHEL 6

    • 3 respostas
  • Marko Smith

    rsync porta 22 e 873 uso

    • 2 respostas
  • Marko Smith

    snap /dev/loop em 100% de utilização -- sem espaço livre

    • 1 respostas
  • Marko Smith

    chave de impressão jq e valor para todos no subobjeto

    • 2 respostas
  • Martin Hope
    EHerman Matriz JSON para bash variáveis ​​usando jq 2017-12-31 14:50:58 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Drux A data pode formatar a hora atual para o fuso horário GMT? [duplicado] 2017-12-26 11:35:07 +0800 CST
  • Martin Hope
    AllisonC Como posso copiar um diretório e renomeá-lo no mesmo comando? 2017-12-22 05:28:06 +0800 CST
  • Martin Hope
    Steve Como as permissões de arquivo funcionam para o usuário "root"? 2017-12-22 02:46:01 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST
  • Martin Hope
    Cbhihe Altere o editor padrão para vim para _ sudo systemctl edit [unit-file] _ 2017-12-03 10:11:38 +0800 CST
  • Martin Hope
    showkey Como baixar o pacote não instalá-lo com o comando apt-get? 2017-12-03 02:15:02 +0800 CST
  • Martin Hope
    youxiao Por que os diretórios /home, /usr, /var, etc. têm o mesmo número de inode (2)? 2017-12-02 05:33:41 +0800 CST
  • Martin Hope
    user223600 gpg — o comando list-keys gera uid [ desconhecido ] depois de importar a chave privada para uma instalação limpa 2017-11-26 18:26:02 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve