GI *_*NAM 7 partitioning disk-usage
bzip2 -dk a.osm.bz2
bzip2: I/O or other error, bailing out. Possible reason follows.
bzip2: No space left on device
Input file = a.osm.bz2, output file = a.osm
bzip2: Deleting output file a.osm, if it exists.
Run Code Online (Sandbox Code Playgroud)
我做了一个df -h和
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/ubuntu--vg-ubuntu--lv 439G 115G 302G 28% /
/dev/sda2 976M 104M 806M 12% /boot
....
Run Code Online (Sandbox Code Playgroud)
该文件大约为 100GB。而且,我绝对应该有大约 350GB 的免费存储空间。我不明白为什么它会导致错误。
$du -sh a.osm.bz2
100G a.osm.bz2
$ df -h .
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/ubuntu--vg-ubuntu--lv 439G 121G 295G 30% /
Run Code Online (Sandbox Code Playgroud)
pLu*_*umo 25
这是一个很大的世界 ;-) 这个错误是合理的。
来自https://wiki.openstreetmap.org/wiki/Planet.osm:
在2021 年 2 月 1 日,从 99.3 GB bzip2 压缩的下载数据文件解压缩时,纯 OSM XML 变体占用超过1370.5 GB)。
你可以 ...
osmosis从planet.osm文件中提取所需的数据。但是.bz2,您应该使用pbfversion而不是文件,这会快得多。一段时间后,您可以从存档文件本身确定存档中的文件有多大。
-rw------- 1 criggie criggie 95M Jul 22 2015 home-email.tar.bz2
$ bzcat home-email.tar.bz2 | wc -c
149606400
Run Code Online (Sandbox Code Playgroud)
这样 95 MB 的存档在一个 tar 文件中扩展为149,606,400 字节,这对于您的目的来说已经足够了。
在 unix 世界中,压缩可能是一个与归档不同的过程,这就是为什么我们有gzip和bzip2,分别有tar将东西粘在一起。
您可以使用测试和详细标志挖掘扩展的 tar 文件
$ bzcat home-email.tar.bz2 | tar -tv
...big list of output....
Run Code Online (Sandbox Code Playgroud)
存档器/压缩器之类的zip组合了这两个功能,因此如果您的存档是起源于 PC 世界的azip或 anarc或 alhz等,您必须检查 LIST 选项的标志 - 例如:
$ unzip -lv /home/criggie/config.zip
Archive: /home/criggie/config.zip
Length Method Size Cmpr Date Time CRC-32 Name
-------- ------ ------- ---- ---------- ----- -------- ----
0 Stored 0 0% 2020-07-28 17:04 00000000 dir/
1708 Defl:N 1093 36% 2017-02-15 14:15 7c7aee5a dir/file1.txt
5354 Defl:N 2860 47% 2020-03-10 15:57 31be4459 dir/file2.txt
-------- ------- --- -------
319022 10362 26% 20 files
Run Code Online (Sandbox Code Playgroud)