วิธีการสร้างระบบไฟล์เสมือนอย่างถูกต้อง?


10

งานในการบ้านของฉันขอให้ฉันสร้างระบบไฟล์เสมือนติดตั้งและดำเนินการบางอย่างกับมัน

ฉันควรจะสร้างไฟล์ขนาด 10 MB ซึ่งบิตทั้งหมดได้รับการจัด0รูปแบบเป็น ext3 และติดตั้ง นี่คือวิธีที่ฉันทำ:

dd if=/dev/zero of=~/filesyst bs=10485760 count=1
sudo mkfs.ext3 ~/filesyst
sudo mount –o loop ~/filesyst /media/fuse

แม้ว่าฉันจะใช้/dev/zeroไฟล์นี้ฉันยังคงเต็มไปด้วยอักขระซึ่งพูดพล่อยๆ สิทธิ์ในการ/media/fuseเป็นdrw-rw-rw-(ซึ่งก็ดี) แต่สิทธิ์ในไฟล์ภายในมันเป็นดังนี้:

d????????? ? ? ? ?          ? lost+found
-????????? ? ? ? ?          ? secret_bin

ฉันไปผิดที่ไหน


ฉันคิดว่าปัญหาเกี่ยวข้องกับคำสั่ง mkfs.ext3 ของคุณ IIRC มีข้อโต้แย้งต่าง ๆ ที่คุณต้องใช้เมื่อทำเช่นนี้กับไฟล์แทนที่จะเป็นอุปกรณ์
user606723

1
บางทีฉันผิดต่อadamsinfo.com/...คุณกำลังทำมันอย่างถูกต้อง คุณลองทำตามคำสั่งที่ถูกต้องใน url นี้และดูว่าคุณยังมีปัญหาอยู่หรือไม่?
user606723

นอกจากนี้ให้ลองmkfs.ext3 -F ~/filesyst
606723

@ user606723 ขอบคุณฉันแก้ไขมันแล้ว ปัญหาคือbsและcountข้อโต้แย้ง ถ้าฉันเขียนbs=1MiB count=10เช่นเดียวกับในลิงค์ที่คุณโพสต์มันใช้งานได้
พอล

1
อย่างไรก็ตามคุณไม่จำเป็นต้องเติมไฟล์ด้วยศูนย์ คุณสามารถสร้างไฟล์เปล่าขนาดเท่าไรtruncate -s 400m filesystก็ได้ ความแตกต่างคือจนกว่าคุณจะเขียนข้อมูลลงในไฟล์นั้นจะไม่ใช้พื้นที่บนดิสก์ดังนั้นคุณสามารถสร้างระบบไฟล์เสมือนที่ใหญ่กว่าดิสก์ไดรฟ์ทั้งหมดของคุณตราบใดที่คุณไม่พยายามเติมให้เต็ม . คุณสามารถดูจำนวนไฟล์ที่ใช้กับdu -h filesystไฟล์ได้
psusi

คำตอบ:


6

อืม ... วิธีที่ถูกต้องที่จะทำคือ:

dd if=/dev/zero of=./filesyst bs=10485760 count=1
sudo losetup /dev/loop0 ./filesyst
sudo mkfs.ext3 /dev/loop0
sudo mount /dev/loop0 /tmp/lalla

และมันใช้งานได้:

(0)romano-asus:~/tmp% ls -l /tmp/lalla
total 12
drwx------ 2 root root 12288 2011-12-20 22:21 lost+found
(0)romano-asus:~/tmp% df /tmp/lalla
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/loop0                9911      1121      8278  12% /tmp/lalla

losetup -fคุณควรตรวจสอบฟรีอุปกรณ์ห่วงครั้งแรกกับ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.