Ich möchte eine Datei mit 2 GB erstellen, aber der Inhalt ist mir egal. Ich verwende derzeit dd
mit /dev/zero
, aber das ist ziemlich langsam.
Ist es möglich, eine Datei und einen Hardlink darauf zu erstellen, ohne den Inhalt der Datei zu initialisieren (sie enthält möglicherweise Mülldaten, die sich an diesem Ort auf der Festplatte befanden)?
Hinweis: Ich möchte es wirklich zuteilen der Speicher. Ich möchte keine spärliche Datei.
Antworten:
Worauf Sie sich beziehen, wird als "spärliche" Datei bezeichnet.
Von diese Seite
So erstellen Sie eine mit
dd
du kannst den ... benutzenseek=
Parameter:Das
seek
undbs
parameters sagt ihm einfach, nach einem Block bis zum Ende der Datei zu suchen, was eine spärliche Datei ergibt, zu der Sie dann einen Hotlink setzen können, wenn Sie möchten.Dadurch erhalten Sie eine vollständig leere Datei, die keinen Speicherplatz auf der Festplatte belegt, bis sie tatsächlich geschrieben wird. Seine Erstellung sollte auch fast augenblicklich sein.
- = EDIT = -
Wenn Sie eine Datei zuweisen möchten und sich nicht für den Inhalt interessieren, bis Sie schreiben, benötigen Sie eine spärliche Datei. Aus Gründen der Dateisystemsicherheit wird es jedoch als "schlechtes Formular" angesehen, wenn eine nicht privilegierte Anwendung eine Datei erstellen darf, die bereits Daten verwendet existiert auf der Festplatte.
Dies liegt daran, dass, wenn eine Userland-Anwendung dies tun könnte, möglicherweise vertrauliche Daten von anderen Benutzern verfügbar gemacht werden könnten, indem eine Datei mit der Größe des gesamten freien Speicherplatzes auf einer Festplatte zugewiesen wird und durch sie hindurch durchsucht wird, wobei nach Passwörtern und anderen vertraulichen Daten gesucht wird, die ein anderer Benutzer möglicherweise gespeichert hat kopiert oder gelöscht.
Dies ist ein explizit schlechter Entwurf in Betriebssystemen, die sich selbst als sicher betrachten möchten und kein modernes Mehrbenutzer-Betriebssystem dies tun kann.
Dies ist der andere Grund, warum Dateien mit geringer Dichte beim Lesen standardmäßig auf Null gesetzt werden, anstatt einen Plattenbereich zuordnen zu dürfen.
Wenn Sie schnell eine Datei mit beliebigen Daten erstellen möchten, ohne Blöcke vorher zuzuordnen, benötigen Sie eine spärliche Datei. Wenn Sie diese Blöcke tatsächlich zuordnen möchten, müssen Sie explizit schreiben etwas in sie.
quelle
Es könnte sein, was Sie brauchen, sofortige Rohdatei:
Das ist in der Tat so
shred
wurde erfunden.quelle