Вот измененное и очень расширенное пересообщение моего ответа на Ваш предыдущий вопрос:
sfill
от secure-delete
пакет может сделать то, что Вы хотите.
В отличие от zerofree (который работает только с ext2, ext3, и ext4 файловые системы), sfill будет работать с любой файловой системой.
например.
sfill -l -l -z /mnt/X
sfill/secure-delete домашняя страница, теперь, кажется, исчез, но она упаковывается для debian и человечности. вероятно, другие дистрибутивы также. если Вам нужен исходный код, который может быть найден в архивах debian, если Вы не можете найти его больше нигде.
Примечание: sfill только работает над смонтированной файловой системой. Если Вы заполните нулями файлы изображений от хост-системы, а не из VM, то необходимо будет смонтировать изображение фс на хосте. Точный метод варьируется в зависимости от того, какой файл изображения это (например, qcow2 или сырые данные).
Монтирование 'необработанных' изображений легко и просто. Просто используйте kpartx
на файле изображения для создания устройства закольцовывания и/dev/mapper/записей для каждого раздела может затем быть смонтирован индивидуально.
вот частичный сценарий, измененный от фрагмента сценария, который я использую для монтирования сетевых загрузочных freedos образов жесткого диска (используемый для обновлений BIOS на машинах, где flashrom не будет работать):
image="myrawimagefile.img"
# use kpartx to build /dev/mapper device nodes
KP=$(kpartx -a -v "$image")
# now mount each partition under ./hd/
for p in $(echo "$KP" | awk '/^add map/ {print $3}') ; do
dm="/dev/mapper/$p"
fp=$(echo "$p" | sed -r -e 's/^loop[0-9]+//')
mkdir -p "./hd/$fp"
mount "$dm" "./hd/$fp"
sfill -l -l -v "./hd/$fp"
umount "$dm"
done
# now remove the loopback device and /dev/mapper entries
kpartx -d "$image"
Примечание: это предполагает, что каждый раздел в изображении является монтируемым. верный в моем примере использования (freedos изображение высокой четкости с одним разделом). не верный, если один из разделов является, скажем, областью подкачки. Обнаружение таких разделов и использование dd для обнуления раздела подкачки оставляют как осуществление для читателя :)
Этот метод или вариант его, должен работать на объемы LVM также.
Если Ваши изображения являются qcow затем, можно использовать qemu-nbd
инструмент от qemu-utils
пакет, который представит файл изображения и его разделы как сетевые блочные устройства - например,/dev/nbd0/dev/ndb0p1 - который может привыкнуть подобным способом к/dev/mapper устройствам выше.
Это является возможно легче и меньше стычки (но более трудоемким) использовать qemu-img
для преобразования от qcow до сырых данных используйте метод для сырых данных выше и затем преобразуйте измененное необработанное изображение назад в сжатый qcow2. Это, вероятно, приведет к немного меньшим изображениям, чем использование qemu-nbd, поскольку Вы будете сжимать новое изображение qcow2, поскольку оно создается.
Согласно по крайней мере этой странице GitHub, названной: openstreetmap/gosmore, это кажется, что возможно использовать Открытые карты города (OSM) с Gosmore. С этой командой показывают gosmore
.
$ bzcat planet-...osm.bz2 | gosmore rebuild
Таким образом, необходимо смочь использовать Ваш osm.bz2
файлы как это:
$ bzcat osm.bz2 | gosmore rebuild
Можно также видеть вышеупомянутые команды в файле README для Gosmore также. Наконец в названной Wiki OSM существует страница: Gosmore/RebuildGuide, который показывает альтернативные методы вышеупомянутому в зависимости от природы данных карты, которые Вы пытаетесь использовать.
Если Вы надеетесь импортировать osm.pbf
файлы Вы смогли находить метод на этой странице в Wiki OSM на формате файла PBF.
Дополнительно существует этот инструмент, osmconvert
, который надеется быть тем, что Вы хотите, главным образом для преобразования OSM в PBF. Страница Wiki для этой команды имеет довольно хорошие детали о своем использовании.
$ bzcat europe.osm.bz2 | osmconvert - -o=europe.pbf
Я думаю, что нашел довольно хорошее решение - оно назвало Мрамор. Это хранит карты как почти все приложения карты андроида - в изображениях, названных "мозаиками". Существует недостаток: Вы не можете загрузить целую мировую карту, потому что это было бы слишком большим в размере, но про - то, что это работает довольно быстро.
Я установил его, это работает из поля, только необходимо выбрать "Openstreetmaps "тема", перейдите к области, к которой Вы хотите смочь получить доступ офлайн, нажать "File"-> "Download Region", установить "диапазон уровня мозаики" (существует ограничение на число мозаик), нажмите "Ok" и в правильной нижней части conner экрана, Вы будете видеть загружающееся состояние.
Если Вы перешли через карту, она также кэширует все, что Вы загружаете, я увеличился, размер кэша в "Настройках"-> "Настраивают Виртуальный Земной шар"-> "Кэш и Прокси" к 10 000. Теперь я загружаю карты, это медленно, но я уверен, что это стоит того.