しばらく前に7zipを使用してバックアップを作成し、ここでファイルを14個の2GB(約)ファイルに分割しました。私はUbuntu Server 15.10を実行しています。
これは私がそれらを抽出するために実行しようとしているものです:
7z x Backup.7z.001
もしそうなら、これも試してみました(「x」と「e」の違いを理解していませんが)。
7z e Backup.7z.001
これが私が得るものです:
7-Zip 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
p7zip Version 9.20 (locale=en_GB.UTF-8,Utf16=on,HugeFiles=on,2 CPUs)
Processing archive: Backup.7z.001
Error: E_FAIL
私が調査した結果、「E_FAIL」エラーは「ディスク容量不足」を意味するようです。ただし、十分なディスク容量があり、「df -h」を実行すると、これが表示されます。
Filesystem Size Used Avail Use% Mounted on
udev 791M 0 791M 0% /dev
tmpfs 161M 5,6M 156M 4% /run
/dev/sda2 450G 73G 354G 18% /
tmpfs 805M 4,0K 805M 1% /dev/shm
tmpfs 5,0M 0 5,0M 0% /run/lock
tmpfs 805M 0 805M 0% /sys/fs/cgroup
tmpfs 161M 0 161M 0% /run/user/1000
/home/cristian/.Private 450G 73G 354G 18% /home/cristian
私は/home/cristian、/srv/samba/photosなどのいくつかのディレクトリから抽出しようとしました。
答え1
3.5GB ISOファイルを8GB USBフラッシュドライブにコピーしています。
診断
私の場合は@kwubbufetowiczに同意し、straceを使用してシステムコールとシグナルを確認しますman strace
。以下を参照してください。
strace 7z x [source] -o[target] 2>&1 | tee 7z-strace.log
最後の40行ほどには、次の順序があります。
open("[path to offending file]", O_WRONLY|O_CREAT, 0664) = 4
[...]
write(4, "[...])..."[...], 131072) = 131071
munmap(0x7f1c9e0b3000, 135168) = 0
write(4, "\354", 1) = -1 EFBIG (File too large)
close(3) = 0
close(4) = 0
brk(0x22be000) = 0x22be000
munmap(0x7f1c9c864000, 3837216) = 0
rt_sigaction(SIGINT, {SIG_DFL, [INT], [...]
rt_sigaction(SIGTERM, {SIG_DFL, [TERM], [...]
write(1, "xtracting [some file]/"..., 1108xtracting [some file]
[...]
ERROR: E_FAIL
) = 1108
exit_group(2) = ?
+++ exited with 2 +++
したがって、ファイル 4 への書き込みは成功し、同じファイルへの書き込みは次のメッセージで失敗します。EFBIG(ファイルが大きすぎます)、いくつかのファイルを閉じる、いくつかの割り込みと終了信号。最後に、以前のエラーメッセージを見ました。エラー:E_FAIL。問題となるファイルサイズは4.3GBです。
また、私に尋ねると、端末に送信される最終メッセージは常に内部メッセージを反映する必要があります。内部にOPのペーストビン、望むより
write(1, "Error: E_FAIL \n", 30Error: E_FAIL ) = 30
一貫したメッセージです。私の場合、端末の「Error:E_FAIL」(大文字のエラーを含む)が呼び出しとシグナルの追跡で「EFBIG(File Too Big)」を隠していました。
基本的には、額面のまま受け入れず、追跡でより多くを見つけてください。また、大文字と小文字とError:E_FAILまたはError:E_FAIL**が表示されているかどうかを記録してください。
行動
私は別のものを見つけました。ブログ投稿2014年に、著者は3つのアプローチを提案しました。
- CD-ROMなどの読み取り専用圧縮アーカイブを見ており、ここに書き込むために-7zipを要求しました。これは実行できないため、ディスク領域がないかのように失敗します。
- ディスク容量が足りないドライブに解凍しようとしています。
- 大容量ファイルをサポートしていないファイルシステムで大容量ファイルを解凍しようとすると、ディスク容量がないかのように失敗します。
私の問題は、新しいフラッシュドライブが私のLinuxシステムに表示されるexFATまたはFAT32でフォーマットされていることです。したがって、大容量ファイル(> 25 GB)は4 GBを超えて書き込むことはできません。これはFAT32の制限です。
デフォルトでは、ディスクの残りのスペースに問題はありません。ファイルシステムが作成するファイルサイズをサポートできることを確認してください。
結果
このソリューションは私にとって効果的です。 USBドライブをFAT32からNFTSに再フォーマットし、抽出が完了しました。抽出後に使用される総スペースは5.3 GBです。
Everything is Ok
Folders: 85
Files: 942
Size: 5437451876
Compressed: 5443010560
) = 3646
exit_group(0) = ?
+++ exited with 0 +++
答え2
ちょうど同様のエラーが発生しました。問題は「file.7z.002」がないことです。誤って「file.7z.001」を新しいフォルダにコピーしました。