Mount, ntfs, uuid und fstab

unam

Member
Hallo, wage mich gerade an FreeBSD heran. Momentan tute ich mir schwer bei dem mounten von HDD's (4TB) eine davon via usb angeschlossen.
Das gewohnte funzt nicht wie z.B. 'fdisk -l' für die Laufwerksübersicht und 'sudo blkid' für die uuid.

z.B. hier alte fstab Ausschitte betreffend der HDD's:
# /dev/sdb1
UUID=456A2AB63A6D2873 /mnt/hdd1 ntfs-3g defaults 1 2
# /dev/sdc1
UUID=5F82438B5D3A2BB1 /mnt/hdd2 ntfs-3g defaults 1 2

Aber bevor ich die Einträge in die fstab von FreeBSD eintragen kann, versuche ich mich gerade in der Konsole mit dem mount, auch das funzt nicht, anbei mein Versuch:
# mount -t ntfs /dev/da1p1 /mnt/hdd1
mount: /dev/da1p1: Operation not supported by device

Wie bekomme ich das in der Konsole gemountet sowie die uuid's der Laufwerke angezeigt damit diese später in die fstab eingetragen werden können und wie ist der Aufbau der fstab in FreeBSD?
 

medV2

Well-Known Member
Zuerst musst du per pkg ntfs-3g und fuse installieren. Dann solltest du die Platte mit "ntfs-3g DEVICE MOUNTPOINT" mounten können.
 

unam

Member
thx, wenn es versuche erhalte ich jene Meldung

# pkg install ntfs, fuse
Updating OPNsense repository catalogue...
OPNsense repository is up to date.
All repositories are up to date.
pkg: No packages available to install matching 'ntfs,' have been found in the repositories
pkg: No packages available to install matching 'fuse' have been found in the repositories
 

medV2

Well-Known Member
Die Pakete heißen fuse und fusefs-ntfs. Du verwendest aber wohl OPNsense, keine Ahnung welchen pkg-Katalog das nimmt und was da alles vorhanden ist.
 

unam

Member
ja zumindest habe ich von dem Handbuch schon einmal Kenntnis genommen, thx.
wenn ich diesem Link folge und versuche die Kommandos in der Konsole zu starten, spielt jene bei den ersten zwei noch mit aber dann folgt:

# pkg install fusefs-ntfs
Updating OPNsense repository catalogue...
OPNsense repository is up to date.
All repositories are up to date.
pkg: No packages available to install matching 'fusefs-ntfs' have been found in the repositories


Bin mir auch nicht sicher welches Paket / Erweiterung in opnsense dafür zuständig sein kann. Google ist bis jetzt nicht mein Freund in diesem Thema
 

pit234a

Well-Known Member
ich gestehe, dass ich keinerlei Ahnung habe, was das überhaupt bedeutet und woher das kommt, dieses OPNsense Repository. Ist das was Spezielles?
 

pit234a

Well-Known Member
opnsense ist eine firewall software die auf freebsd aufsetzt
Ah, da habe ich nur kurz nachgesehen und das hat eher HardenedBSD zur Grundlage, was natürlich auch wieder FreeBSD basiert ist.
Egal: das sind ja ganz spezielle Lösungen und meinetwegen vergleichbar, mit dem FreeBSD was in deinem DVD-Player womöglich die Steuerung übernimmt. Solche speziellen Systeme sind nicht unbedingt dazu geeignet / dafür ausgelegt, weiter ausgebaut zu werden.
Umgekehrt ist das eine andere Sache: du kannst ein "normales" FreeBSD nehmen und zu einer einfachen Firewall-Lösung machen, oder einer NAS-SW oder....

Ich selbst würde da eher nicht weiter machen.
Also, das "Rückentwickeln" von OPNSense zu einem FreeBSD kann ja unglaublich komplex sein und vielfältig scheitern. Selbst, wenn das oberflächlich betrachtet einfach erscheinen mag. Wegen des hohen Risikos ein vollkommen verhunztes System zu erhalten, will ich darüber auch gar nicht erst reden. Wobei natürlich alle Hinweise auch im Handbuch zu finden sind, wenn es etwa um die Auswahl von repos geht.
 

midnight

OpenBSD & FreeBSD
Mach doch einfach mal ein pkg search ntfs und schaue, was ausgegeben wird. Evtl. heisst das Paket unter OPNSense ja anders.
 

pit234a

Well-Known Member
Nun habe ich nicht nachgesehen, aber HardenedBSD ist doch auch inzwischen eingestellt? Und OPNSense dürfte dementsprechend auch nicht auf einer der aktuellen FreeBSD-Versionen beruhen.
Und ich gehe stark davon aus, dass das eigene Repo einfach nur die wenigen Manipulationen am System beinhalten wird und keineswegs eine komplette FreeBSD-Distro umfasst. Nachgesehen habe ich allerdings auch nicht, es würde mich halt nur wundern....
 

mr44er

moderater Moderator
Teammitglied
Nicht unterstützt, nicht angedacht und wirklich keine gute Idee auf einer Firewall Daten bereitzustellen. Da rate ich ebenfalls dringend davon ab!

Nun habe ich nicht nachgesehen, aber HardenedBSD ist doch auch inzwischen eingestellt? Und OPNSense dürfte dementsprechend auch nicht auf einer der aktuellen FreeBSD-Versionen beruhen.
Jap, es wurde von HardenedBSD auf FreeBSD gewechselt. Seit kurzem kann man nun auch direkt vom Installer aus auf ZFS installieren, das aber nur am Rande.

Das ist das aktuelle repo:
 

bsd4me

Well-Known Member
Das klingt ja ein bisschen verworren. Bei mir geht es Ich habe "nur" fusefs-ntfs auf FreeBSD 13.0 installiert:

pkg info | grep ntfs
fusefs-ntfs-2017.3.23 Mount NTFS partitions (read/write) and disk images

Wie sieht es denn nun aus @unam? Bist Du weiter gekommen?

VG Norbert
 

Yamagi

Possessed With Psi Powers
Teammitglied
Hallo, wage mich gerade an FreeBSD heran. Momentan tute ich mir schwer bei dem mounten von HDD's (4TB) eine davon via usb angeschlossen.
Das gewohnte funzt nicht wie z.B. 'fdisk -l' für die Laufwerksübersicht und 'sudo blkid' für die uuid.

z.B. hier alte fstab Ausschitte betreffend der HDD's:
# /dev/sdb1
UUID=456A2AB63A6D2873 /mnt/hdd1 ntfs-3g defaults 1 2
# /dev/sdc1
UUID=5F82438B5D3A2BB1 /mnt/hdd2 ntfs-3g defaults 1 2

Aber bevor ich die Einträge in die fstab von FreeBSD eintragen kann, versuche ich mich gerade in der Konsole mit dem mount, auch das funzt nicht, anbei mein Versuch:
# mount -t ntfs /dev/da1p1 /mnt/hdd1
mount: /dev/da1p1: Operation not supported by device

Wie bekomme ich das in der Konsole gemountet sowie die uuid's der Laufwerke angezeigt damit diese später in die fstab eingetragen werden können und wie ist der Aufbau der fstab in FreeBSD?

Die Sache funktioniert etwas anders als unter Linux. Linux verhält sich in Sachen Device Management und dem Mounten von Devices weitgehend wie ein klassisches Unix. Jedes physische oder virtuelle Gerät wird über eine Device Node anhand von Major Numbers (für den Treiber) und Minor Numbers (für das einzelne Gerät) angesprochen. Die Device Nodes müssen händisch angelegt werden. Auf modernen Distros sieht der Nutzer das nur nicht, weil sich ein Mechanismus wie udev (entweder eigenständig oder als Teil eines größeren Framesworks wie dem berüchtigten systemd) um das Anlegen kümmert. Dinge wie UUIDs für Dateisysteme kommen dabei einfach durch Symlinks zustande, für Abstraktionen wie Soft-RAIDs, per LUKS verschlüsselte Medien und so weiter gibt es mit dem Device Mapper eine recht simple Abstraktion.

FreeBSD ist andere Wege gegangen. Device Nodes können nicht mehr händisch angelegt werden, der Kernel stellt sie selbstständig über devfs zur Verfügung. Sie haben keine Major Numbers. Für Endanwender wie dich ist das egal, aber wer Software auf FreeBSD portiert, muss das eventuell beachten. Man kann im devfs nur begrenzt symlinken, weil der Kernel jederzeit Änderungen vornehmen kann, die einen Symlink kaputt machen. Für Storage implementiert FreeBSD ein recht komplexes System mit dem namens GEOM. GEOM funktioniert in sogenannten Klassen, Klassen sind beispielsweise gpart für Partitionen, glabel für Partitionslabels, gmirror für ein einfaches RAID1 und so weiter. Die Klassen werden "gestapelt", für den Anwender sieht es in etwa wie eine Matroskapuppe aus. Außen ist das Speichermedium, darauf folgen nach innen verschiedene Klassen und zuletzt das Dateisystem. Klingt erstmal kompliziert.

Daher ein Beispiel:
1. Außen ist ein Speichermedium. Klassische S-ATA Medien heißen ada, alles was über SCSI angesprochen wird da und NVMe-Medien nvd. Nehmen wir als Beispiel mal eine ganz normale S-ATA SSD mit dem Namen ada0.
2. Nun müssen Partitionen angelegt werden. Die Partitionen werden von der gpart GEOM-Klasse gelesen, die daraufhin für jede Partition ein weiteres Device anlegt. Sagen wir der Einfachheit halber, dass es bei einer modernen GPT-Partition bleibt. Er erhält ada0p1, also ada0 für die SSD + p1 für die erste und einzige Partition.
3. Der Nutzer möchte seine Partition verschlüsseln, dafür nimmt er geli. Das ist eine GEOM-Klasse, nachdem er geli init auf die Partition angewandt hat, erhält er nach dem Matroskaprinzip ein neues Devices ada0p1.eli. Also ada0 ganz außen, p1 für die ersten Partition und darin eli für die Verschlüsselung.
4. Das Dateisystem, nehmen wir mal UFS, legt er mit newfs /dev/ada0p1.eli an.

Einfach /dev/ada0p1.eli in die fstab einzutragen, ist keine gute Idee. Zwar sind Device Namen unter FreeBSD garantiert statisch, allerdings prinzipbedignt nur, solange das Mainboard sie bei jedem Start gleich enummeriert. Daher stellt die glabel GEOM-Klasse eine Menge Label zur Verfügung. Unter anderem Partitionslabel, UUIDs und Dateisystemlabel. Hat der Nutzer im Beispiel der Partition das Label example gegeben, legt glabel ein /dev/gpt/example Pseudodevice an. Hat die Partition zudem die UUID 1234-5678 parallel dazu ein /dev/gptid/1234-5678 Pseudodevice. Wenn man nach dem Matroskaprinzip arbeitet, sind mehrere Devices auf einer Ebene eine dumme Idee. Entweder kann der Nutzer die Devices unterschiedlich behandeln, also zum Beispiel /dev/gpt/example verschlüsseln und /dev/gptid/1234-5678 in einen Mirror einfügen. Das geht natürlich nicht. Oder man spielt alle höheren Klassen auf alle Devices zurück, legt also /dev/gpt/example.eli und /dev/gptid/1234-5678.eli an. Das wird sehr schnell sehr komplex. GEOM löst dies Problem, indem es auf jeder Ebene nur einen geben kann. In dem Moment, wo die Verschlüsselung auf /dev/gptid/1234-5678 geöffnet wird, verschwindet /dev/gpt/example.

Um beispielsweise deine Swap per UUID zu mounten musst du also erstmal die UUID rausfinden:
Code:
% glabel status
     Name  Status  Components
gptid/1234-5678  N/A  ada0p1

Und das kommt in Standard-Unix-Format in die fstab:
Code:
# Device Mountpoint Type Options Dump Pass
/dev/gptid/1234-5678 none swap sw 0 0

Testen kann man es mit:
Code:
% service swap start
 

unam

Member
Vielen Dank für die Mühen tolle Beschreibung @Yamagi.
Meine Hdd / Daten sind bereits vorhanden und ntfs formatiert.

@bsd4me nein noch nicht wirklich. 'pkg info | grep ntfs' liefert kein Ergebnis, aber auch keine Fehlermeldung.
 

pit234a

Well-Known Member
ich stelle mir vor, dass du ein anderes repo nutzt und daher nicht die übliche Auswahl an Paketen hast.
zeig doch mal die Ausgaben von:
Code:
freebsd-version -ukr

/etc/pkg/FreeBSD.conf
 

unam

Member
# freebsd-version -ukr
12.1-RELEASE-p19-HBSD
12.1-RELEASE-p19-HBSD
12.1-RELEASE-p19-HBSD
# cat /etc/pkg/FreeBSD.conf
# $FreeBSD$
#
# To disable this repository, instead of modifying or removing this file,
# create a /usr/local/etc/pkg/repos/FreeBSD.conf file:
#
# mkdir -p /usr/local/etc/pkg/repos
# echo "FreeBSD: { enabled: no }" > /usr/local/etc/pkg/repos/FreeBSD.conf
#

FreeBSD: {
url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest",
mirror_type: "srv",
signature_type: "fingerprints",
fingerprints: "/usr/share/keys/pkg",
enabled: yes
}
 

pit234a

Well-Known Member
ich rate einfach mal, weil mir die Zeit fehlt. Man müsste in der man zu pkg.conf nachlesen, um es genauer zu wissen. Aber es scheint mir vernünftig genug, anzunehmen, dass der Eintrag FreeBSD: { enabled: no } genau das FreeBSD-Repo verhindert.
Nun wäre es vermutlich einfach, die komplette Datei zu entfernen und mal zu sehen, was dann passiert, aber, die Macher dieses OPNsense haben sich womöglich was dabei gedacht, denn sie benutzen auch nicht direkt FreeBSD, sondern eben FreeBSD-HBSD.
Ich kann da nicht abschätzen, wieviel das verändert wurde, fürchte aber, dass es eben nicht angesagt ist, beliebig "fremde" Pakete (also aus einem normalen FreeBSD" zu installieren.
 

midnight

OpenBSD & FreeBSD
HardenedBSD nutzt, wie der Name schon sagt, eigene "hardened packages". Wenn Du nun die Pakete mit dem FreeBSD-Repo mischst, kann es u.a. zu unvorhergesehenen Nebenwirkungen kommen. Man kann in der pkg.conf zwar die Prioritaet der Repos setzen, aber wenn FreeBSD-Pakete gewisse Funktionen voraussetzen, die im hardened-Repo entfernt wurden, fuehrt das zu Problemen und ist nicht zu empfehlen. Hier hilft vermutlich nur, das HardenedBSD-Repo durch eigene Pakete zu erweitern und die mit den passenden Flags zu bauen.
 
Zuletzt bearbeitet:

unam

Member
ok thx, aber so schnell gebe ich nicht auf obwohl opnsense meines Erachtens viel verkompliziert.
Außerdem ist bis Januar 2022 nicht mehr lange hin da soll es wieder zurück zu FreeBSD (13), wenn ich dann bis dahin durchhalte.
 
Oben