Làm thế nào để tạo chính xác một hệ thống tập tin ảo?


10

Một tác vụ trong bài tập về nhà của tôi yêu cầu tôi tạo một hệ thống tệp ảo, gắn kết nó và thực hiện một số thao tác trên nó.

Tôi phải tạo một tệp có dung lượng 10 MB, tất cả các bit được đặt thành 0, định dạng tệp đó là ext3 và gắn kết nó. Đây là cách tôi đã làm điều đó:

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

Mặc dù tôi đã sử dụng /dev/zero, tập tin tôi vẫn chứa đầy các ký tự vô nghĩa (chủ yếu là tại các dấu hiệu). Các quyền trên /media/fusedrw-rw-rw-(không sao), nhưng các quyền trên các tệp bên trong nó là như thế này:

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

Tôi đã đi sai ở đâu?


Tôi nghĩ vấn đề có liên quan đến lệnh mkfs.ext3 của bạn. IIRC, Có nhiều đối số khác nhau bạn cần sử dụng khi thực hiện việc này trên tệp thay vì thiết bị.
dùng606723

1
Có lẽ tôi đã sai, mỗi adamsinfo.com/ , bạn đang làm đúng. Bạn có thể thử làm theo các lệnh chính xác trên url này và xem nếu bạn vẫn có vấn đề?
dùng606723

Ngoài ra, hãy thửmkfs.ext3 -F ~/filesyst
user606723

@ user606723 Cảm ơn, tôi đã giải quyết nó. Vấn đề là bscountlập luận. Nếu tôi viết bs=1MiB count=10, như trong liên kết mà bạn đã đăng, nó hoạt động.
Paul

1
Nhân tiện, bạn thực sự không cần phải điền vào tệp bằng số không. Bạn chỉ có thể tạo một tập tin trống có kích thước tùy ý với truncate -s 400m filesyst. Sự khác biệt là cho đến khi bạn thực sự ghi dữ liệu vào tệp, nó không sử dụng dung lượng trên đĩa, do đó bạn có thể tạo một hệ thống tệp ảo lớn hơn toàn bộ ổ đĩa của mình, miễn là bạn không cố gắng lấp đầy nó . Bạn có thể thấy tập tin thực sự sử dụng bao nhiêu dung lượng du -h filesyst.
psusi

Câu trả lời:


6

Hmmm ... cách chính xác để làm điều đó là:

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

Và nó hoạt động:

(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

Bạn nên kiểm tra thiết bị vòng lặp đầu tiên miễn phí với losetup -f.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.