Frage von paul6800i, 75

Wie spricht man Festplatten bei Linux an?

Bei Windows kann man ja einfach die Buchstaben benutzen C:/ D:/ und so weiter...

Wie geht das bei Linux ? Ich weiß das die unter /dev/ sind.

man muss die ja mounten. Wenn ich jetzt ein skript schreiben will das nach und nach alle absucht únd nach einem bestimmten ordner suchen will

(Wenn Festplatte angeschlossen in dem Ordner xy Existiert, mach das..)

Danke im Vorraus ;)

Expertenantwort
von guenterhalt, Community-Experte für Computer & Linux, 19

Ich weiß das die unter /dev/ sind.

naja, die Festplatten/Partitionen sind sind unter /dev

Dort stehen für den Kernel lediglich 3 bzw. 4 Werte, aus denen der Kernel entnimmt, wie er so eine Platte/Partition zu behandeln hat.
Das ist einmal der Type ( Massenspeicher oder Blockdevice, serielles  Gerät oder auch Socket ), dann die Major- und die Minor-Nummer. Als 4. Wert kommt der Name hinzu.

Dieser 4. Wert wird zum Mounten (einbinden) benötigt.
Anders als bei Windows kann so eine Partition nur an den Linux-Verzeichnisbaum angebunden werden. Davon gibt es nur einen und seine Wurzel (root) ist der /

Wo man die Partitionen einer Festplatte einbindet, ist dem Benutzer ( besser dem Superuser -auch der heißt bei Unix/Linux root- ) überlassen.

Man muss bei Linux keinesfalls alle Partitionen beim Booten einbinden. Es werden nur die beim booten eingebunden, die auch einen Eintrag in der Datei /etc/fstab haben.
Wechseldatenträger ( CD, DVD, USB-Sticks, SD-Karten ... ) werden anders behandelt. Das wird aber dann  von Programmen ausgeführt, die nicht zum Kernel gehören und damit auch von Distribution zu Distribution unterschiedlich sind.

Das was du machen willst, betrifft dann wohl nur Platten oder Partitionen, die nicht zum System gehören?

In Linux gibt es ein leeres Verzeichnis, dass speziell für solche Operationen vorgesehen ist. Der Name  ist von mount abgeleitet und lautet /mnt .

Ob man bei solchen nahezu einmaligen Aufgaben ein Script benötigt?

Finde manuell die Gerätedatei heraus, die das System deinen Partitionen zugeteilt hat.

fdisk -l 

oder

cat /proc/partitions 

zeigen das an ( natürlich auch die, die Linux beim Booten eingebunden hat)

mount alle die Partitionen nacheinander nach /mnt

mount /dev/sdXY /mnt
ls -R /mt |grep <gesuchter-ordner-name>
umount /mnt 

nächste Partition ....

Antwort
von Gummileder, 26

Hier wird es erklärt:

https://wiki.ubuntuusers.de/Datentr%C3%A4ger/

Für das mounten benötigt man keine Scripte. Automount ist das Stichwort.

Das mit den Laufwerk Buchstaben hat man bei Windows aus Kompatibilitäts Gründen gelassen, man könnte es da auch ohne Buchstaben machen.

Bei Apple OS X, macOS gibt es auch keine Laufwerk Buchstaben, weil der Kern des Betriebssystem eine Variante des Betriebssystems Unix namens BSD ist.

Kommentar von Linuxhase ,

@Gummileder

könnte es da auch ohne Buchstaben machen.

Bist Du da sicher?

Ich nicht.

Bei Apple OS X, macOS gibt es auch keine Laufwerk Buchstaben, weil der Kern des Betriebssystem eine Variante des Betriebssystems Unix namens BSD ist.

Das ist aber nicht richtig!

Unics
└── Unix
├─ Minix
├─ Linux
| ├─ Debian
| | ├─ Ubuntu
| | | └─ Mint
| | | └─ Bodhi
| | | └─ und 88 weitere
| | └───── Knoppix
| ├─ Slackware
| ├─ usw.
├─ BSD ─ OS-X
| | └─ iOS
| ├─ freeBSD
| └─ openBSD
└─ Solaris

Linuxhase

Kommentar von Gummileder ,

Zu den Buchstaben in Windows:

https://www.windowspro.de/andreas-kroschel/datentraeger-mounten-statt-laufwerksb...

Was ist jetzt konkret nicht richtig an meiner Beschreibung zu dem Ursprung von OS X? Wenn ich deinen "Baum" sehe, liege ich doch genau richtig. Ich lerne gerne was dazu ;) Oder war das Haarspalterei.

Antwort
von MatthiasHerz, 20

Da offenbar noch so gar keine Grundlagen dazu hast, solltest https://wiki.ubuntuusers.de/Datenträger/ lesen. Da findest einige gute Erklärungen.

Solltest ein anderes Linux nutzen, gilt das weitgehend trotzdem.

Kommentar von paul6800i ,

das habe ich schon gelesen, verstehe es aber immer noch nicht:(

kannst du mir nen crash kurs geben? :D

Kommentar von MatthiasHerz ,

Die Bezeichnung von SATA- und PATA- (IDE) Festplatten beginnt immer mit sd und wird durchbuchstabiert.

Die primären Partitionen werden von 1 bis 4 nummeriert, die sogenannten logischen Laufwerke in einer erweiterten Partition ab 5.

Hast also beispielsweise zwei SATA-Festplatten, die erste mit vier Partitionen, davon je zwei in der erweiterten, die zweite mit drei primären, hast unter /dev/

sda1, sda2, sda5, sda6,

sdb1, sdb2, sdb3.

Externe optische Datenträger haben die Bezeichnung scd mit Nummerierung ab 0, also /dev/scd0, /dev/scd1 usw.

In alten IDE-Systemen mit Master und Slave hat der primary master /dev/sda, der primary slave /dev/sdb, der secondary master /dev/sdc und der secondary slave /dev/sdd.

Kommentar von MatthiasHerz ,

Nachtrag:

Du kannst natürlich auch die Partitionen auf c, d oder e mounten (ohne Doppelpunkt).

Aus Übersichtsgründen sind aber aussagekräftigere Mountpoints zu empfehlen, wie die gängigen, /user für die Benutzerverzeichnisse, /boot für die Bootpartition, /windows_c oder /win_system für eine eingehängte Windowssystempartition.

Im Übrigen lassen sich auch unter Windows die Laufwerksbuchstaben ausschalten, so dass dort die reale Bezeichnung der Laufwerke sehen kannst.

Kommentar von guenterhalt ,

Die Bezeichnung von SATA- und PATA- (IDE) Festplatten beginnt immer mit sd und wird durchbuchstabiert.

diese Bezeichnung wird seit einiger Zeit wohl bei (fast) allen Distributionen verwendet. Früher war das hd ( /dev/hda1 , /devhda2 ... /dev/hdb1 ...)

Währen Debian z.B. für SD-Karten Bezeichnungen wie /dev/mmcblkp1 ... , bei openSuSE ist das einfach z.B. /dev/sdd1 ...

Der Name praktisch belanglos.

Kommentar von MatthiasHerz ,

Der Name wird vom jeweiligen System vorgegeben.

Belanglos ist er also nicht, weil ihn wissen musst, um Datenträger einzubinden oder auszuhängen und Mountpoints zu setzen.

Wenn an relevanter Stelle mal den falschen Datenträger ansprichst, kann das recht verwirrende Folgen haben, z. B. für das Löschen oder Formatieren von Speicherkarten.

Antwort
von Linuxhase, 3

Hi

Klar kann man auch ein Laufwerk C: oder D: haben, wenn man das haben möchte. Ich hab das mal kurz durchgespielt, wie hier zu sehen ist:

Vorher

root@arch-desktop: lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 55,9G 0 disk
└─sda1 8:6 0 55,9G 0 part /
sdb 8:16 0 931,5G 0 disk
├─sdb1 8:17 0 8G 0 part [SWAP]
└─sdb2 8:21 0 864,7G 0 part /home
sdd 8:48 1 14,6G 0 disk
└─sdd1 8:49 1 14,6G 0 part

Dann ein Verzeichnis für den späteren Mountpoint mit dem gewünschten Namen, hier also C: anlegen:

root@arch-desktop: mkdir /C:

Nachsehen ob es ein Mountpoint ist:

root@arch-desktop: mountpoint /C:
/C: ist kein Einhängepunkt

Nun ein Dateisystem in dieses Verzeichnis einhängen/mounten wie hier:

mount /dev/sdd1 /C:

-------------------------------------------------------------------------------------------------

Nachher

Jetzt noch nachsehen wie es ausschaut:

root@arch-desktop: lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 55,9G 0 disk
└─sda1 8:6 0 55,9G 0 part /
sdb 8:16 0 931,5G 0 disk
├─sdb1 8:17 0 8G 0 part [SWAP]
└─sdb2 8:21 0 864,7G 0 part /home
sdd 8:48 1 14,6G 0 disk
└─sdd1 8:49 1 14,6G 0 part /C:

...und ob es jetzt ein Mountpoint ist:

root@arch-desktop: mountpoint /C:
/C: ist ein Einhängepunkt

Und am Ende mal das Root-Verzeichnis (nicht root sein Verzeichnis) anzeigen lassen:

root@arch-desktop: ls -l C:
drwxr-xr-x 4 root root 4096 17. Sep 20:08 boot
drwxr-xr-x 2 root root 4096 1. Okt 17:43 C:
drwxr-xr-x 20 root root 3500 1. Okt 17:42 dev
drwxr-xr-x 101 root root 4096 1. Okt 06:01 etc
drwxr-xr-x 7 root root 4096 19. Sep 18:09 home
drwx------ 2 root root 16384 31. Aug 21:47 lost+found
drwxr-xr-x 2 root root 4096 1. Okt 17:45 mnt
drwxr-xr-x 4 root root 4096 19. Sep 22:11 opt
dr-xr-xr-x 223 root root 0 29. Sep 22:08 proc
drwxr-x--- 14 root root 4096 18. Sep 19:21 root
drwxr-xr-x 25 root root 620 1. Okt 17:42 run
drwxr-xr-x 4 root root 4096 30. Sep 2015 srv
dr-xr-xr-x 13 root root 0 1. Okt 17:45 sys
drwxrwxrwt 35 root root 4096 1. Okt 16:31 tmp
drwxr-xr-x 8 root root 4096 31. Aug 21:55 usr
drwxr-xr-x 13 root root 4096 14. Sep 22:15 var

Selbstverständlich hätte ich statt C: auch C:\ oder nur C nehmen können.

Nun sag mir mal was daran nun einfacher (oder übersichtlicher?) sein soll?

Linuxhase

Antwort
von MatthiasHerz, 4

Der Dateimanager ist auch nur eine grafische Oberfläche für die Anwendung der Shell Befehle.

Für ein Skript zuerst einen Dateimanager zu starten, nur um Daten zu finden, ist ziemlich sinnfrei.

Kommentar von MatthiasHerz ,

(Ups.)

... bezieht sich auf den Kommentar von gonzo.

Antwort
von Linuxhase, 7

Hallo

Wie spricht man Festplatten bei Linux an?

Ich rede nicht mit meinen Geräten ;-)

Bei Windows kann man ja einfach die Buchstaben benutzen C:/ D:/ und so weiter...

Das ist nicht einfach sondern rückständig und kompliziert, ein Gestrüpp statt eines Baumes!

Wie geht das bei Linux ? Ich weiß das die unter /dev/ sind.

Dort sind lediglich die Gerätedateien, also keine richtigen Dateien sondern lediglich die vom System manifestierte Zugriffsstelle zu den Geräten.

Alles ist eine Datei

man muss die ja mounten.

Dieses mounten (einhängen von Dateisystemen in das Betriebssystem um sie den Usern nutzbar zu machen) wird nicht nur unter Linux sondern auch unter Windows gemacht.

Wenn ich jetzt ein skript schreiben will das nach und nach alle absucht únd nach einem bestimmten ordner suchen will

  1. Was soll da "abgesucht" werden?
  2. und von welchem Programm?

Unter Linux ist finde (treffender Name nicht wahr?) das richtige Programm:

find / -type d -name "genauerName"

oder

find / -type d -iname "*ungenauerName*"

wie zum Beispiel:

find / -type d -iname "*.mp3$"

würde alle Verzeichnisse (wegen -type d ) finden deren letzten vier Zeichen .mp3 lauten - Nicht aber die Dateien mit dieser Endung!

Wenn Festplatte angeschlossen in dem Ordner xy Existiert, mach das..

Du meinst:

#!/bin/bash
echo "Wie lautet der Name des Verzeichnisses?"
read VAR1
if [ $(mountpoint ${VAR1}|awk '{print $3}') != "ein" ] ;
then
echo "nicht gemounted" ;
else
echo "gemounted" ;
fi

Musst es nur an Deine Mountpoints anpassen.

Linuxhase

Kommentar von Linuxhase ,
for i in $(ls -l | grep "^d" | awk '{print $9}') ; do mountpoint $i ; done
Antwort
von FordPrefect, 19

Unter UN*X wird das Gerät über den entsprechenden device entry unter /dev angesprochen. Die entscheidende Frage ist daher, an welchen Port / Schnittstelle das Gerät verbunden ist. Bei S-ATA wäre es üblicherweise /dev/sdXY, wobei X eine Variable zwischen a und z für die Platte selbst, und Y für die Partition darauf darstellt. Die erste Platte wäre also /dev/sda, die zweite /dev/sdb etc. Die erste Partition der ersten Platte wäre dann /dev/sda1 usw. Für SCSI-Geräte gilt das übrigens entsprechend.

Antwort
von LeonardM, 16

mkdir /mnt/bezeichnung

mount /dev/geraetedatei /mnt/bezeichnung

Antwort
von GunnarPetite, 18

mkdir /media/devices_to_search/<mountpoint1..>

mount -t <Dateisystem (z.B.: ntfs od. ext4) >   /dev/<Device>  /media/devices_to_search/<Mountpoint>

find /media/devices_to_search -name <xy> -exec <mach-dies-und-das> 

du benötigst root-Rechte (sudo ..) für die meisten Befehle

Antwort
von gonzo1233, 4

Starte doch einfach den Dateimanager in Linux, dann hast du Zugriff auf alle Dateien.

Was hindert dich Linux auf deinem Rechner (evtl. neben Win) zu installieren?

Auch eine kostenfreie Linux-Live DVD erfüllt den Zweck - einfach davon booten, schon ist Linux vollständig verfügbar.



Antwort
von Linuxhase, 6

Hallo

(Wenn Festplatte angeschlossen in dem Ordner xy Existiert, mach das..)

for i in $(ls -l / |grep "^d"|awk '{print $9}') ; do mountpoint /${i} ; done

Linuxhase

Keine passende Antwort gefunden?

Fragen Sie die Community