Come montare un dispositivo su Linux?


75

Ho letto alcune risorse sul comando mount per montare i dispositivi su Linux, ma nessuno di questi è abbastanza chiaro (almeno per me).

Nel complesso, ciò che afferma la maggior parte delle guide:

$ mount
(lists all currently mounted devices)

$ mount -t type device directory
(mounts that device)

for example (to mount a USB drive):
$ mount -t vfat /dev/sdb1 /media/disk

Cosa non mi è chiaro:

  • Come faccio a sapere cosa utilizzare per "dispositivo" come in $ mount -t type device directory? Cioè, come faccio a sapere che dovrei usare "/ dev / sdb1" in questo comando $ mount -t vfat /dev/sdb1 /media/diskper montare la mia unità USB?

  • cosa definisce qui il parametro "-t"? genere?

Ho letto la pagina man ( $ man mount) un paio di volte, ma probabilmente mi manca ancora qualcosa. Si prega di precisare.


@rozcietrzewiacz Devo ammettere che la mia mente non ha funzionato correttamente. Quando @Let_Me_Be si riferiva a, /dev/disk/by-idho pensato che "by-id" doveva essere sostituito da qualcosa e che doveva essere emesso come comando. Non mi è venuto in mente che potrebbe effettivamente essere una directory. Questo probabilmente accade a Windows -> utenti Linux nella loro fase iniziale! (o sono solo io :))
its_me

@rozcietrzewiacz Non è molto giusto.
Alex Chamberlain,

4
Rilascia il -t type. mountnormalmente lo capirà e generalmente se non ci riesce, è una ragionevole indicazione che stai facendo qualcosa di sbagliato.
Alex Chamberlain,

3
@AlexChamberlain Vedo che mi hanno portato. Mi scuso con @its_me. Avrei dovuto scrivere "Se avessi davvero letto il manuale, non avresti chiesto l' -topzione". L'altra parte della domanda (come determinare quale dispositivo è rappresentato da una /dev/voce) è molto ragionevole.
rozcietrzewiacz,

Risposte:


81

Puoi usare fdisk per avere un'idea del tipo di partizioni che hai, ad esempio:

fdisk -l

Spettacoli:

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *          63   204796619   102398278+   7  HPFS/NTFS
/dev/sda2       204797952   205821951      512000   83  Linux
/dev/sda3       205821952   976773119   385475584   8e  Linux LVM

In questo modo sai di avere partizioni sda1,2 e 3. L'opzione -t è il tipo di filesystem; può essere NTFS, FAT, EXT. Nel mio esempio, sda1 è ntfs, quindi dovrebbe essere qualcosa del tipo:

mount -t ntfs /dev/sda1  /mnt/

I dispositivi USB sono di solito vfat e Linux di solito ext.


Sono su una VM fedora (host Windows 7). Ho appena collegato un disco USB (Windows non lo riconosce perché la VM è in esecuzione) ed ho emesso il comando $ fdisk -l. Ma elenca solo i file system LVM Linux e Linux (solo due). Non vfat, ntfs, hpfs o ext ecc.
its_me,

Forse questo non è un problema di montaggio, ma un problema di riconoscimento del dispositivo. Dai un'occhiata al file / var / log / message, dovrebbe mostrare se c'è qualche problema con il dispositivo USB.
ghm1014,

Quindi, normalmente è così che dovrei trovarlo su un sistema Linux in esecuzione: plug-in una pen drive (esempio), emettere il comando # fdisk -le trovare il dispositivo (/ dev / *) e il suo filesystem (vfat, ntfs, hpfs, ext ecc)) . Giusto?
its_me,

Di solito si. Se stai eseguendo gnome, monta usb e dischi rigidi esterni ma si monta da solo senza montare manualmente. Mostra una finestra pop-up proprio come fa Windows.
ghm1014,

Un ultimo dubbio. Sono questi gli unici file di dispositivi comuni per filesystem: / dev / sd * o / dev / hd * sono per dischi rigidi, / dev / cdrom per CD-ROM e / dev / fd * per floppy. Qualunque altra cosa?
its_me,

17

Ero davvero arrugginito su questo, e poi ha iniziato a tornare .. se questo non risponde alla tua domanda, forse ho letto male ...

Alibi: questo è su una versione di Ubuntu 14. Il tuo chilometraggio può variare.

Uso lsblkper ottenere i punti di mount, che è diverso da mount Per me lsblkè più facile da leggere dimount

Assicurati di avere una directory creata prima di andare a montare il tuo dispositivo.

sudo mkdir /{your directory name here}
sudo mount /dev/{specific device id} /{your directory name here that is already created}

Dovresti essere bravo ad andare, comunque controlla le autorizzazioni di sicurezza su quella nuova directory per assicurarti che sia quello che vuoi.


7

In questi giorni, è possibile utilizzare i percorsi dettagliati per montare un dispositivo specifico.

Per esempio:

mount /dev/disk/by-id/ata-ST31500341AS_9VS2AM04-part1 /some/dir
mount /dev/disk/by-id/usb-HTC_Android_Phone_SH0BTRX01208-0\:0 /some/dir

Dove posso trovare ulteriori informazioni al riguardo? Non sono ancora in questa "cosa prolissa" su Linux, quindi è confusa.
its_me,

1
@Aahan Bene, questi sono solo collegamenti simbolici a /dev/sd*. Ci sono /dev/disk/by-id(ID dispositivo / partizione), /dev/disk/by-uuid(UUID dispositivo / partizione - non molto utile per l'uso manuale), /dev/disk/by-path(dipende da come è collegato il dispositivo), /dev/disk/by-label(etichetta partizione se presente)
Let_Me_Be

da dove ottengo questi dettagli (ID partizione, percorso dispositivo, etichetta ecc.)?
its_me,

1
@Aahan Bene, questo è ciò che segnala il dispositivo. L'ID sarà il nome o il modello del dispositivo o il numero di serie o una combinazione. Il percorso sarà lo stesso, ma segnalato per il modo in cui il disco è collegato, quindi sarà per esempio pci-0000:00:1f.2-scsi-3:0:0:0-part3(dispositivo pci 0000: 00: 1f.2, terza porta, terza partizione), l'etichetta sarà etichetta, uuid è generato dal computer unico id (lo userai se vuoi una forma di identificazione che non cambierà).
Let_Me_Be

1
Quando ti riferivi a / dev / disk / by-id ho pensato che "by-id" doveva essere sostituito da qualcosa e che doveva essere emesso come comando. Non mi è venuto in mente che potrebbe effettivamente essere una directory. Grazie per essere stato paziente con me. LOL, ero ridicolo :)
its_me il

3

mount(il comando) di solito capisce il "tipo" del file system sul dispositivo. Penso che la parte difficile se capire il nome del file del dispositivo. Devi quasi conoscere le convenzioni di denominazione dell'unità disco per capirlo.

Su un box Linux Arch aggiornato:

133 % ls /dev/sd??
/dev/sda1  /dev/sda2  /dev/sda3  /dev/sda4  /dev/sdb1  /dev/sdb2

Ma questo non funziona su una confezione Slackware matura (2.6.20.9):

1 % ls /dev/sd??
zsh: no matches found: /dev/sd??
2 % ls /dev/hd??
/dev/hda1  /dev/hda2

Senza sapere in anticipo che /dev/sd*o /dev/hd*sono file del dispositivo del disco rigido, è necessario utilizzare lspcio lsusbo qualcosa per capire il nome del file del dispositivo. I dispositivi USB spesso lasciano informazioni /var/log/messagesper aiutarti a capire quale file dispositivo udev assegnato loro.


1
Che ne dici di usare fdisk -lcome l'altra risposta menzionata? (vedi anche il mio ultimo commento su quella risposta.)
its_me

1

Su Ubuntu 14, puoi anche usare l'app Disks:

inserisci qui la descrizione dell'immagine

Prima fai clic sul disco nel pannello di sinistra, quindi fai clic sulla partizione sul pannello di destra. La parte inferiore del pannello di destra mostra il formato, lo stato di montaggio corrente ecc. È inoltre possibile utilizzare questa GUI per creare / eliminare / formattare le partizioni.


Perché due identici da 4 GB? E OQ ha difficoltà a trovare il dispositivo corretto. E poi anche formattare?
rastafile,

1

Come mai abbiamo molti modi per farlo, ma come sempre prendiamo in considerazione e non sappiamo dove il file system utilizzato nel dispositivo possa ostacolare un po ', ma possiamo usare l'opzione "auto" per dare un piccolo aiuto.

mount -t auto /dev/sdb1 /media/pendrv

e pronto il nostro dispositivo sarà montato: su / media / pendrv pronto per l'uso, quindi utilizzare semplicemente:

umount /media/pendrv

... per rilasciare il dispositivo.


0

ThoerX Forum Controlla il dispositivo con disco -l

Partition the device as following :-
fdisk /dev/sda
d - Delete old partitions
n - New partition
select partition number
select start block
select end block
v - verify the new partition
w - write through

now fdisk - l should show /dev/sda1 with proper filesystem type (say ext4)
mount -t ext4 /dev/sda1 /myMountPoint

0

Il "dispositivo" di cui parla mount man è un dispositivo a blocchi logici con un filesystem su di esso.

Un "dispositivo" può anche significare un prodotto (SSD è un'unità, HDD è unità disco, DVD è disco, ODD è unità disco.

Spesso non importa quale esattamente. Ma quando si tratta di montare (o formattare o partizionare), importa, perché conta logicamente.

Come puoi vedere, sda è proprio accanto a sda1, 2, 3 ... E anche sdb, sdc, ognuno con le sue partizioni. Quindi puoi sbagliare in entrambi i modi.

Quando si mount /dev/sdb1 /media/disk/sceglie la partizione 1 dal disco sata "b". Se sdb1 è una partizione penna USB, il nome del tuo mountpoint non parla molto.

Puoi persino montare un pezzo di RAM per creare un ramdisk o un file ("dispositivo loop"). O un "dispositivo" completamente virtuale come sysfs, che popola la directory / sys (mountpoint).

L'idea di montaggio, e quindi il comando mount, si basano su un concetto (VFS ecc.) Con tre elementi principali:

  1. Dispositivo / blocco partizione: confronta fdisk -l, lsblke cat /proc/partitions. È complicato, ma l'80% è solo punti di vista diversi.
  2. File system: la formattazione trasforma una partizione da 20 GB in una directory vuota con 18 GB di spazio libero da riempire con i file. Vedi man mkfse man mkfs.ext2(mkfs.FSTYPE).
  3. Mountpoint: questo è solo un "hook", una directory (vuota) a cui il nuovo ramo è collegato alla directory principale "/". Con l' associazione e la sovrapposizione è possibile creare alberi FS complicate. Ma qualsiasi ad hoc mkdir xyzva bene, tecnicamente.

Tutto questo montaggio è stato configurato una volta dal sysadmin in / etc / fstab, centralmente. Con l'attuale hot-plug dello storage di massa, le cose si complicano un po '.

Nel caso di una penna USB è un modulo del kernel che fa apparire / dev / sdb e le sue partizioni in una frazione di secondo.

Tutte le ulteriori automazioni nel collegamento a caldo, per quanto semplici, devono essere coordinate da udev e talvolta perfezionate da strumenti aggiuntivi. Udev può gestire TUTTI i dispositivi, non solo l'archiviazione.

Siamo presi dalla comodità di avere una nuova icona (o anche solo un "dispositivo" con un nome decente) che si apre automaticamente, e il modo in cui il kernel con il file system (virtuale) deve sistematicamente preparare le parti. Ma con RAID e crittografia e tutti i diversi "dispositivi" di archiviazione Linux deve aggiungere alcuni livelli.

Alla fine, vuoi quel contenuto a portata di mano.

Normalmente, devi solo identificare il corretto ... DISPOSITIVO;). Puoi ls /dev/sd*vedere cosa c'è: quali lettere, quali numeri identificano il tuo DISPOSITIVO ...

E quindi digitare

mkdir mydev
mount /dev/DEVICE mydev

(Puoi tralasciare la -t typeparte)


È facile da leggere e sistematico allo stesso tempo. "mount" è un concetto molto importante. Tutte queste risposte mostrano il "problema", specialmente per i debuttanti . "mount" è IL comando unix. Multidimensionale. Solo fork () più complesso.
rastafile,

wikipedia critiche su linux: una volta, i sistemi Linux richiedevano supporti rimovibili, come floppy disk e CD-ROM, per essere montati manualmente prima di poter accedere. Il supporto di montaggio è ora automatico in quasi tutte le distribuzioni, con lo sviluppo di udev.
rastafile,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.