mklink Junction auf ImDisk Ram-Disk kann nicht erstellt werden

Das_ZD

Newbie
Registriert
Feb. 2023
Beiträge
5
Hallo,

ich benutze ImDisk für eine dynamische Ram-Disk und möchte mit mklink eine Verzeichnisverknüpfung (junction) erstellen, die von meiner SSD zu der Ram-Disk führt, also z.B.:

mklink /j C:\Users\User\Downloads R:\Downloads

Wenn ich den Befehl ausführe, kommt allerdings die Meldung:

Zum Abschließen dieses Vorgangs sind lokale Volumes erforderlich.

Zum testen habe ich eine weitere Ram-Disk mit SoftPerfect RAM Disk erstellt. Wenn ich den Befehl zu dieser Ram-Disk ausführe, wird die Verknüpfung erfolgreich erstellt. Das Problem bei dieser Ram-Disk ist aber, dass sie nicht dynamisch angelegt ist und somit immer den gesamten Arbeitsspeicher verwendet, den man ihr zugeschrieben hat. Aus diesem Grund würde ich gerne ImDisk verwenden.

Zur Sicherheit habe ich in den fortgeschrittenen Optionen bei den zusätzlichen Parametern "-o hd" hinzugefügt, was die Ram-Disk als "Hard Disk" erstellt. Leider funktioniert der mklink-Befehl dann immer noch nicht.


Wie kann ich die Ram-Disk von ImDisk als lokales Volume einstellen, damit ich die Verknüpfung erfolgreich erstellen kann?

Mir ist bewusst, dass ich das Download-Verzeichnis beispielsweise im Browser auf die Ram-Disk ändern kann, allerdings würde ich gerne verschiedene Ordner mit der Ram-Disk verknüpfen, die man zum Teil nicht so einfach verlegen kann. Der Downloads-Ordner ist nur ein Beispiel für mein Problem.

Vielen Dank für eure Hilfe!
 
Lösung
Vielen Dank für eure Antworten.

Ich habe das Problem jetzt mehr oder weniger selbst gelöst, und zwar zunächst mit Powershell. Der Befehl lautet dann:

New-Item -ItemType Junction -Path C:\Verzeichnis -Target R:\Ziel

Der Befehl wurde erfolgreich ausgeführt und die Verknüpfung war damit vorhanden. Seltsamerweise hat es im Nachhinein mit dem ursprünglichen Befehl in CMD dann auch funktioniert. Dafür muss der Ordner auf der Ram-Disk vorher erstellt worden sein, sonst kommt wieder die Fehlermeldung. Ich meine zwar, dass ich das (sogar mehrmals) ausprobiert habe, aber vielleicht hat dabei etwas anderes noch nicht gestimmt.

In Powershell wird das Problem ziemlich eindeutig beschrieben, aber in CMD wäre ich nie darauf gekommen, was mit...
auf der Projektseite von GitHub steht das es nicht für "moderne" Systeme ab Vista geeignet ist. Evt. liegt es daran. Bitte einmal nachlesen.
 
Ich müßte nachlesen, aber kann ein Junction Point über Partitionsgrenzen erstellt werden oder wird dafür nicht eher ein symbolischer Link benötigt?
Es ist keine Frage des Betriebssystem sondern des eingesetzten Dateisystems.
 
Jetzt mal ganz doof gefragt . Was SOLL dieser Unsinn überhaupt ?

Eine RAM-Disk nutzt mal für sachen wo der Speed derselben auch ankommt bzw. gebraucht wird. Eine Ram-Disk ist auch exakt das was der Name schon sagt : Eben ein LAUFWERK, nur das es eben nicht eigenständig ist sondern idr. von EINER Source beschickt wird damit z.B. Daten direkt aus der RAM-Disk geladen werden statt von dort wo sie eig. liegen. Dies wurde gerne in Verbindung mit HDD's genutzt um z.B. ganze Spiele in die RAM-Disk zu legen etc.

Die nutzung die du da skizierst ist allerdings ..... Downloads über ne Ram-Disk laufen zu lassen bringt z.B. ansolut GARnichts ..... und sollte eine NVMe-SSD verbaut sein merkt man ohnehin kaum noch wirkliche Unterschiede in der Ladegeschwindigkeit bei den meisten Sachen, es sei denn man schneidet z.B. große Filmdateien (mit einem Tool welches das nicht ohnehin komplet in den RAM lädt).

Überleg dir also lioeber erst ob du das ganze WIRKLICH brauchst bevor du deine Experimente weiter betreibst und dir evtl. damit sogar Bremsen ins System rein haust .....
 
  • Gefällt mir
Reaktionen: kado001
Ein Junction Point über Partitionsgrenzen ist möglich, andernfalls würde es mit der statischen Ram-Disk ja auch nicht funktionieren, was es aber tat.

Neben der erhöhten Geschwindigkeit der Ram-Disk hat sie den Vorteil, dass Daten dort nach einem Neustart verloren gehen und außerdem keine Schreibzyklen "verbrauchen", was die Lebensdauer einer SSD verringert. Häufig werden Ram-Disks eben dafür genutzt, dass temporäre Dateien und Cache z.B. vom Browser dort abgelegt werden, um damit die SSD zu schonen.
Außerdem ist das nicht meine einzige Intention mit der Ram-Disk. Für virtuelle Maschinen oder Spiele kann es nämlich auch sinnvoll sein, einzelne Ordner auf die Ram-Disk zu übertragen. Dabei würde auch die bessere Leistung des Arbeitsspeichers zur Geltung kommen. Der Downloads-Ordner war wie gesagt nur ein Beispiel.

Die Verknüpfung auf die statische Ram-Disk hat weiterhin mit der dynamischen Ram-Disk von ImDisk funktioniert, nachdem ich letztere mit dem selben Laufwerkbuchstaben erstellt habe. Das ist aber leider sehr umständlich, wenn ich einen weiteren Ordner verknüpfen möchte, weil ich dafür jedes mal die eine Ram-Disk entfernen und die andere erstellen muss, und anschließend wieder anders herum. Am liebsten wäre es mir, wenn ich die Verknüpfungen direkt auf die Ram-Disk von ImDisk erstellen könnte.
 
Das_ZDobby schrieb:
Die Verknüpfung auf die statische Ram-Disk hat weiterhin mit der dynamischen Ram-Disk von ImDisk funktioniert, nachdem ich letztere mit dem selben Laufwerkbuchstaben erstellt habe.
Danke für den Hinweis, nach der Altion kann man sogar über das Netzwerk auf solche junctions zugreifen, was mit Verknüpfungen nicht so einfach möglich ist.

Das_ZDobby schrieb:
Das ist aber leider sehr umständlich, wenn ich einen weiteren Ordner verknüpfen möchte, weil ich dafür jedes mal die eine Ram-Disk entfernen und die andere erstellen muss, und anschließend wieder anders herum.
Einfach den Laufwerksbuchstaben für die Ramdisk deaktivieren, einen USB-Stick anschließen, diesem den Laufwerksbuchstaben der Ramdisk zuweisen, die Junction erstellen, den USB-Stick auswerfen und den Laufwerksbuchstaben für die Ramdisk wieder zuordnen. Das ist zwar auch lästig, aber wenn man das nicht täglich macht, ist es eher zumutbar wie nur deshalb 55€ (je PC) für einen anderen Ramdisk-Treiber auszugeben, der ein richtiges Laufwerk simluliert.

kado001 schrieb:
auf der Projektseite von GitHub steht das es nicht für "moderne" Systeme ab Vista geeignet ist.
Das steht zwar etwas vollkommen anderes, aber im Grunde dürfte das, was dort steht, der Grund für das Problem hier sein.

NatokWa schrieb:
Jetzt mal ganz doof gefragt . Was SOLL dieser Unsinn überhaupt ?
Nur weil Du offensichtlich keinen Sinn darin siehst, gibt es ihn trotzdem.

NatokWa schrieb:
Die nutzung die du da skizierst ist allerdings ..... Downloads über ne Ram-Disk laufen zu lassen bringt z.B. ansolut GARnichts .....
Du kennst also alle Anwendungen dieser Welt, Wie war das: 640KB Ram sind ausreichend für alle PC-Nutzer. Video auf die Ramdisk geladen, Werbung/Müll rausgeschnitten und das fertige Ergebnis danach dauerhaft auf die SSD speichern. Warum soll ich dafür dutzende GB temporäre Daten auf die SSD schreiben, während das Ram in dem Moment nicht weiss, was es außer Stromverschwendung noch tun soll?
 
Vielen Dank für eure Antworten.

Ich habe das Problem jetzt mehr oder weniger selbst gelöst, und zwar zunächst mit Powershell. Der Befehl lautet dann:

New-Item -ItemType Junction -Path C:\Verzeichnis -Target R:\Ziel

Der Befehl wurde erfolgreich ausgeführt und die Verknüpfung war damit vorhanden. Seltsamerweise hat es im Nachhinein mit dem ursprünglichen Befehl in CMD dann auch funktioniert. Dafür muss der Ordner auf der Ram-Disk vorher erstellt worden sein, sonst kommt wieder die Fehlermeldung. Ich meine zwar, dass ich das (sogar mehrmals) ausprobiert habe, aber vielleicht hat dabei etwas anderes noch nicht gestimmt.

In Powershell wird das Problem ziemlich eindeutig beschrieben, aber in CMD wäre ich nie darauf gekommen, was mit "lokalen Volumes" gemeint ist, da ich dabei eher davon ausgegangen bin, dass die Ram-Disk die "falsche Art" von Partition bzw. Laufwerk ist. Vielleicht ist das auch nur ein fehlerhafter Output seitens CMD.

Die Hauptsache ist, dass es jetzt funktioniert. 😄
 
Zurück
Oben