Perguntas sobre como usar o comando mount

2

Ao usar o comando mount para um dispositivo, fiquei pensando nas seguintes perguntas:

  1. Como o arquivo do dispositivo é um parâmetro para montar, como se sabe o que o arquivo de dispositivo para um dispositivo está em geral?
  2. Tenho que criar antecipadamente o diretório para o qual o dispositivo está montado para, se não existir ainda? Eu vi isso foi dito para ser necessário, mas meu CD com o nome "mycd" é automaticamente montado em / media / mycd, que não existe de antemão.
  3. um dispositivo pode ser montado em vários lugares, sem desmontar?

Obrigado e cumprimentos!

    
por Tim 30.05.2011 / 21:10

2 respostas

6

(Você não especificou o seu sistema operacional. Estou assumindo que é algum variante do GNU / Linux, o conceito geral se aplica a outros UNIXes também; detalhes podem não.)

1. Como alguém sabe qual é o arquivo do dispositivo para um dispositivo em geral?

Basicamente, você precisa saber qual nome de arquivo de dispositivo corresponde qual dispositivo.

As fontes desta informação são as documentação do kernel do Linux , os arquivos de configuração udev (veja em /etc/udev ) e o MAKEDEV script.

A explicação correta é bem mais longa aqui: o kernel do Linux identifica dispositivos por um par de números, chamou os números dos dispositivos "principais" e "menores". Qualquer arquivo de dispositivo ter o maior e menor número do seu dispositivo de CD-ROM será tratado pelo kernel como aquele dispositivo de CD-ROM; então você poderia criar o comando mknod ) um dispositivo de CD-ROM /my/cdrom e use isso; Da mesma forma, você pode usar qualquer convenção de nomenclatura que desejar para qualquer dispositivo. No entanto, tanto software de sistema depende de encontrar um dispositivo pelo nome que é muito trabalhoso mudar os nomes dos dispositivos do "padrão".

Os nomes dos dispositivos reais usados no sistema são parcialmente o resultado de histórico (por exemplo, os nomes /dev/sdX e /dev/hdX para unidades de disco - alguém começou a usá-los no começo dos tempos e o nome preso), parte do resultado de um acordo entre as pessoas em desenvolvimento algumas partes de baixo nível do sistema (principalmente, o kernel, libC e udev).

2. Preciso criar antecipadamente o diretório ao qual o dispositivo está montado?

Sim, o mount não criará esse diretório para você.

O motivo pelo qual você vê os pontos de montagem para CDs, pen drives e outros dispositivos automagicamente aparecendo em /media é que algum daemon processo criou isso para você. (No GNU / Linux executando o GNOME desktop vai aproximadamente da seguinte forma: você insere o CD, o suporte diretório é criado, o CD é montado e - possivelmente - um gerenciador de arquivos janela é aberta. Quase tudo pode mudar, dependendo do exato Versão e distribuição do Linux.)

Mas na linha de comando, você está sozinho e precisa criar o monte você mesmo.

3. Um dispositivo pode ser montado em vários lugares, sem desmontar?

Se você quer dizer "como fazer com que o conteúdo do CD apareça em vários lugares do sistema de arquivos ", então sim, você pode fazer isso usando um recurso chamado "bind mount".

A montagem de ligação pode ser "replicar" em qualquer diretório do sistema de arquivos em outro, disjoint, parte do sistema de arquivos. Por exemplo, você poderia dê o comando:

mount --bind /var/tmp /mnt

e isso fará com que o conteúdo de /var/tmp seja replicado no diretório /mnt : se você criar um arquivo /var/tmp/foo , verá o mesmo arquivo que aparece como /mnt/foo .

Leitura adicional

Você pode encontrar mais informações sobre mount e sua operação em:

por 30.05.2011 / 22:56
5

O arquivo do dispositivo é como você informa ao mount qual dispositivo ou outro local você deseja acessar. Então não tem como adivinhar.¹

Existem vários tipos diferentes dos sistemas de arquivos que você pode montar . Para sistemas de arquivos com suporte a disco (o primeiro tipo que geralmente vem à mente), o dispositivo é um dispositivo de bloco . Seu nome geralmente é /dev/something , em que a parte something codifica o driver de disco a ser usado, qual disco específico usar se esse driver gerencia mais de um, e qual parte do disco deve ser acessada, se relevante. Diferentes variantes unix têm formas diferentes de designar dispositivos. A referência oficial é as páginas de manual do driver de dispositivo da sua variante unix, geralmente seção 4: AIX , FreeBSD , Linux , Mac OS X (seção 4) , MINIX , NetBSD , OpenBSD , Solaris 11 , Unix 6th ed. , Unix 8ª ed. ,…

No Linux, aqui estão algumas outras maneiras de descobrir nomes de dispositivos e maneiras alternativas de designar dispositivos. Algumas delas têm análogos sob outras variantes unix.

  • Em /proc/partitions , há uma lista de discos, partições de disco, volumes lógicos e outros dispositivos de bloco. Nem todos eles possuem um sistema de arquivos.
  • Todos os volumes lógicos têm uma entrada em /dev/mapper .
  • O comando mount aceita rótulos de sistema de arquivos e UUIDs em vez de um nome de dispositivo, especificado como LABEL=foo ou UUID=1234… em vez de /dev/something .
  • Quando um dispositivo é conectado ao sistema, o udev atribui a ele um nome de dispositivo.
  • A maioria das distribuições Linux organiza (por meio do udev) para ter vários nomes alternativos para dispositivos semelhantes a disco, em /dev/disk . Estes são nomes alternativos para os mesmos dispositivos. Por exemplo, na máquina em que estou escrevendo, o dispositivo que hospeda meu sistema de arquivos inicial (que é um volume lógico LVM) é acessado como /dev/dm-7 , /dev/disk/by-id/dm-name-VolumeGroupName-LogicalVolumeName , /dev/disk/by-id/dm-uuid-LVM-LongStringOfDigitsAndLetters , /dev/disk/by-label/\x2fhome e /dev/disk/by-uuid/SomeUUID .

Existem também sistemas de arquivos que não vêm de um arquivo de disco. Por exemplo, para sistemas de arquivos remotos, como NFS ou Samba , o nome do dispositivo designa um nome de máquina e um caminho ou nome de compartilhamento nessa máquina (por exemplo, machinename:/shared/directory ).

Muitos sistemas de desktop organizam notificações quando um novo dispositivo é conectado e montam automaticamente sistemas de arquivos reconhecíveis.

No entanto, você pode informar mount de uma vez por todas que um determinado ponto de montagem corresponde a um dispositivo específico sob um tipo de sistema de arquivos específico com opções específicas, gravando uma linha em /etc/fstab .

O comando mount requer que o diretório (o ponto de montagem) exista. Os sistemas de montagem automática geralmente criam diretórios conforme necessário, antes de realizar a montagem real (e remover o diretório após a desmontagem).

Nem todos os unices podem montar o mesmo sistema de arquivos em vários lugares de forma nativa. No Linux, isso é possível por meio de uma montagem de ligação . Na maioria dos unices, você pode usar os bindfs Sistema de arquivos FUSE para isso.

    
por 30.05.2011 / 22:33