Як налаштувати пристрій, що працює з петлею?


23

Я знаю, що можу створити та використати пристрій петлі, як це:

# Create the file
truncate disk.img --size 2G
# Create a filesystem
mkfs.ext4 disk.img
# Mount to use
mount disk.img /mnt
# Clean up
umount /mnt

Однак у цьому випадку зображення диска фіксується на рівні 2 Гб. Це 2 Гб, коли він порожній, і 2 ГБ, коли він заповнений. Воно не виросте.

Чи є якийсь пристрій для зворотного зв'язку, який може збільшуватися в розмірах? Або є такий пристрій для зворотного зв'язку, якому потрібно лише стільки місця, скільки він зберігає?


1
Оскільки файл розріджений, він повинен використовувати лише стільки місця, скільки зберігається у вашому прикладі.
jordanm

Залежно від того, що ви намагаєтеся зробити з цим, інструмент virt-make-fsможе бути корисним. Його можна використовувати для створення ext2-образів за допомогою файлів tar.
Котте

Відповіді:


17

Створіть пристрій з розрідженим файлом, використовуючи dd.

df -hm # to show where we started
dd of=sparse-file bs=1k seek=102400 count=0 # creates a 100Meg sparsefile
mkfs.ext4 sparse-file
mkdir blah
mount sparse-file blah
cp somefile blah
ls -lahts sparse-file  # The 's' option will report the actual space taken in the first column
ls -lahts blah
df -hm # doublecheck my work
echo 'profit :)'

Довідка: рідка стаття з файлу wikipedia


10

@ jordanm коментар прибив це. Я припускав, що розмір файлу був виправлений, коли я дивився на вихід ls -lh disk.img. Коли я використовував, ls -s disk.imgяк у відповіді @ Стефана, відображається реальний розмір файлу. Як тест, я створив файл зображення, який перевищує мій жорсткий диск:

truncate test.img -s 1000G

І це працює чудово, а це означає, що відповідь є у питанні :)


Урізання працює чудово, btw, я просто думав, що я покажу альтернативну команду для створення згаданого розрідженого файлу, і (залежно від вашого дистрибутива Linux та набору інструментів), що вам не обов'язково потрібно використовувати losetup, оскільки 'mount' у поточному режимі втілення досить розумне щодо налаштування розумних варіантів, коли вони вам потрібні.
Стефан

Трохи про кріплення цікаво. Просто цього разу, тому що мені також потрібні ЛУКС (cryptsetup luksFormat / dev / loop0), мені потрібна втрата: D
phunehehe

Ще одна зручна команда Linux для створення розрідженого файлу fallocate(1).
Льоекі

2

Ви можете зробити це вручну за допомогою будь-якого запиту dd, або простіше, оскільки ви використовуєте скорочення:

truncate -s 100M file
mkfs.ext4 -m0 file
#mount, do whatever
umount /mountpoint
#let's grow it to 200 MB
truncate -s 200M file
e2fsck -f file && resize2fs file
#done

2 лайнера для його вирощування, навряд чи вимагає автоматизації тут, я б наважився сказати :)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.