Как вычислить правильный размер образа файловой системы устройства с обратной связью для debootstrap?

Я нашел ответ на этот вопрос. Используйте .bash_profile вместо .bashrc

Кроме того, вам может потребоваться ввести

source ~/.bash_profile

для перезагрузки.

Кроме того, я нашел две полезные ссылки:

https: //www.moncefbelyamani.com / create-aliases-in-bash-profile-to-assign-shortcuts-for-common-terminal-commands / и это - https://community.linuxmint.com/ tutorial / view / 891 - но не следуйте советам по .bashrc (я полагаю - поскольку это не сработало для меня) - используйте вместо этого .bash_profile.

Также посмотрите комментарии ко второй ссылке - требуются .bash_aliases в .bash_profile - более элегантный способ прокрутки ..

3
11.03.2018, 12:10
2 ответа

Возможно, самое простое решение - изначально сильно перераспределить пространство, скопировать все файлы, а затем использовать resize2fs -M, чтобы уменьшить размер до минимума, с которым может справиться эта утилита. Вот пример:

dir=/home/meuh/some/dir
rm -f /tmp/image
size=$(du -sb $dir/ | awk '{print $1*2}')
truncate -s $size /tmp/image
mkfs.ext4 -m 0 -O ^64bit /tmp/image
sudo mount /tmp/image /mnt/loop
sudo chown $USER /mnt/loop
rsync -a $dir/ /mnt/loop
sync
df /mnt/loop
sudo umount /mnt/loop
e2fsck -f /tmp/image 
resize2fs -M /tmp/image 
newsize=$(e2fsck -n /tmp/image | awk -F/ '/blocks$/{print $NF*1024}')
truncate -s $newsize /tmp/image
sudo mount /tmp/image /mnt/loop
df /mnt/loop
diff -r $dir/ /mnt/loop
sudo umount /mnt/loop

Некоторые выдержки из вывода для примера каталога:

+ size=13354874
Creating filesystem with 13040 1k blocks and 3264 inodes
+ df /mnt/loop
Filesystem     1K-blocks  Used Available Use% Mounted on
/dev/loop1         11599  7124      4215  63% /mnt/loop
+ resize2fs -M /tmp/image
Resizing the filesystem on /tmp/image to 8832 (1k) blocks.
+ newsize=9043968
+ truncate -s 9043968 /tmp/image
+ df /mnt/loop
Filesystem     1K-blocks  Used Available Use% Mounted on
/dev/loop1          7391  7124        91  99% /mnt/loop
4
27.01.2020, 21:18

Для справки, я изменил свой исходный код, чтобы использовать du -sm , который, похоже, решил мою проблему. Я думаю, что суть проблемы заключалась в том, что -sb - это псевдоним для - очевидный размер .

Кроме того, знание того, что ext4 требует, скажем, 5% накладных расходов, позволяет легко учесть фактор в расчетах, но я не думаю, что это была реальная проблема, поскольку он не работал при записи в качестве суперпользователя.

0
27.01.2020, 21:18

Теги

Похожие вопросы