7zipのE_FAILエラー

7zipのE_FAILエラー

しばらく前に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つのアプローチを提案しました。

  1. CD-ROMなどの読み取り専用圧縮アーカイブを見ており、ここに書き込むために-7zipを要求しました。これは実行できないため、ディスク領域がないかのように失敗します。
  2. ディスク容量が足りないドライブに解凍しようとしています。
  3. 大容量ファイルをサポートしていないファイルシステムで大容量ファイルを解凍しようとすると、ディスク容量がないかのように失敗します。

私の問題は、新しいフラッシュドライブが私の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 +++

おすすめ記事