Linuxマシンのバックアップと、ext3に潜む罠

京大推進研

(版間での差分)
移動: 案内, 検索
(ディスクファイルシステム)
 
(1人の利用者による、間の8版が非表示)
1行: 1行:
 
{{免責事項}}
 
{{免責事項}}
  
 +
バックアップは重要である。つい先日もある計算機 (Leliel) の内蔵HDが突然クラッシュし、筆者は半年間のシミュレーションデータを失った。データをマシン内に放置せず、必ずバックアップをとろう。
  
バックアップは重要である。つい先日もある計算機の内蔵HDが突然クラッシュし、筆者は半年間のシミュレーションデータを失った。データをマシン内に放置せず、必ずバックアップをとろう。この記事では、Linuxから主にポータブルハードディスク(HD)にバックアップする際にぶつかりそうな問題を記す。Linuxで広く使われる Ext3 というファイルシステムフォーマットに潜む罠(inodeのサイズ問題)についても記す。
+
== とりあえずここだけ読んで ==
 
+
== Linuxマシンのバックアップ ==
+
 
シミュレーションのデータなどをバックアップする際、scp など([[wikipedia:ja:グラフィカルユーザインタフェース|GUI]]ではWinSCPなど)を使ってネットワークで手元に持ってきてもいいのだが、データサイズが大きい計算をやっている人は注意されたい。ネットワークにあまり大きなデータを流すのはよくない。shared を使っている他の人にも影響を及ぼす可能性がある。ネットワークにも優しく、失敗の可能性が一番少ないのは、直接USBポータブルHDなどを接続してバックアップする方法である。
 
シミュレーションのデータなどをバックアップする際、scp など([[wikipedia:ja:グラフィカルユーザインタフェース|GUI]]ではWinSCPなど)を使ってネットワークで手元に持ってきてもいいのだが、データサイズが大きい計算をやっている人は注意されたい。ネットワークにあまり大きなデータを流すのはよくない。shared を使っている他の人にも影響を及ぼす可能性がある。ネットワークにも優しく、失敗の可能性が一番少ないのは、直接USBポータブルHDなどを接続してバックアップする方法である。
  
 +
結論から言うと(最近のFedoraはよくできているので)、普通にWindows用のHDを買ってきて、USBでつなげばいい。
 +
ただし、多くの製品は出荷時にFAT32でフォーマットされている。これでは4GiBを超えるサイズのファイルは保存できないので、特にデータ量が大きい時はWindows上でNTFS形式にフォーマットし直して使おう。(下の方に詳しく書いた)
 +
 +
== Windows上でフォーマットするとき ==
 +
マイコンピュータでドライブのアイコンを選んで、右クリック、「フォーマット」を選びます。ファイルシステム等をメニューから選択して、開始を押せばフォーマットされます。
 +
 +
== Linux上でフォーマットするとき ==
 
LinuxにおいてHDのフォーマットをしたいとき、[http://gparted.sourceforge.net/ GParted] というソフトを使うのが便利である。Fedoraにはデフォルトでインストールされていないので、
 
LinuxにおいてHDのフォーマットをしたいとき、[http://gparted.sourceforge.net/ GParted] というソフトを使うのが便利である。Fedoraにはデフォルトでインストールされていないので、
 
  $ su
 
  $ su
 
  パスワード: (管理者パスワードを入力)
 
  パスワード: (管理者パスワードを入力)
 
  # yum install gparted
 
  # yum install gparted
としてインストールしよう([http://www.atmarkit.co.jp/flinux/rensai/linuxtips/a825usegparted_new.html 解説記事])。さて、このとき問題になるのが、HDドライブのファイルシステムを何にするかである。
+
としてインストールしよう([http://www.atmarkit.co.jp/flinux/rensai/linuxtips/a825usegparted_new.html 解説記事])。
 +
 
 +
(yumが正しく動作しない場合は、プロキシの設定が正しく行われていない可能性がある。 [[Linux の便利機能]]参照 )
 +
 
 +
さて、フォーマットするとき問題になるのが、HDドライブのファイルシステムを何にするかである。
  
 
==ディスクファイルシステム==
 
==ディスクファイルシステム==
 
ハードディスク内のファイルを管理するシステムのことを'''[[wikipedia:ja:ファイルシステム|ディスクファイルシステム]]'''と呼び、いくつかのフォーマットがある。Windowsで一般的なのはNTFS、少し古いフォーマットとしてFAT32がある。Linuxにおいては ext2 あるいは ext3 というフォーマット、MacではHFS+が一般的である。他にもISO 9660、UDF、XFSなど。
 
ハードディスク内のファイルを管理するシステムのことを'''[[wikipedia:ja:ファイルシステム|ディスクファイルシステム]]'''と呼び、いくつかのフォーマットがある。Windowsで一般的なのはNTFS、少し古いフォーマットとしてFAT32がある。Linuxにおいては ext2 あるいは ext3 というフォーマット、MacではHFS+が一般的である。他にもISO 9660、UDF、XFSなど。
 +
 +
{| class=wikitable
 +
! フォーマット
 +
! Linux !! Windows !! Mac OS X !! 補足
 +
|-
 +
! ext2/3
 +
| ◎ native|| △ 要下記ソフト || △ 要MacFUSE ||
 +
|-
 +
! FAT32
 +
| ○ read/write || ◎ native|| ○ read/write || 1ファイル4GiBまで
 +
|-
 +
! NTFS
 +
|  ○ read/write || ◎ native||  △ 要NTFS for Mac ||
 +
|-
 +
! HFS+
 +
| × || × || ◎ native ||
 +
|}
 +
  
 
一番多くのシステムでサポートされているのはFAT32であり、Windowsはもとより、Linux, Macも読み書きに対応する。ただしこれはやや古いフォーマットのため、ドライブサイズやファイルの数、ファイルの最大容量に制限があったりする。たとえば、4GiB以上のファイルは作れない。計算結果をまとめて[[wikipedia:ja:Tar|tarball]]にしてバックアップ、といったことはできなくなる。データが膨大になる計算の場合はこれは顕著な問題となる。(内部向けメモ:例えば当研究室のMDコードは、1条件につきGiBオーダーの膨大なデータを吐き出す。)
 
一番多くのシステムでサポートされているのはFAT32であり、Windowsはもとより、Linux, Macも読み書きに対応する。ただしこれはやや古いフォーマットのため、ドライブサイズやファイルの数、ファイルの最大容量に制限があったりする。たとえば、4GiB以上のファイルは作れない。計算結果をまとめて[[wikipedia:ja:Tar|tarball]]にしてバックアップ、といったことはできなくなる。データが膨大になる計算の場合はこれは顕著な問題となる。(内部向けメモ:例えば当研究室のMDコードは、1条件につきGiBオーダーの膨大なデータを吐き出す。)
  
もしLinux上でのことだけを考えるならば、ext3にするのはひとつの確実な解である。Linux上でフォーマットを行い、ext3を選べばよい。ただし、この形式にするとWindowsでの読み書きの際には少し手間がかかる。次節参照。また、次節の方法を使ったとしても、Windowsからext3への書き込みは推奨されない。Windowsから書き込む可能性があるときはFAT32を使うのがいい。
+
以前はLinuxはNTFS形式のドライブには書き込めなかったが、最近のFedoraは NTFS-3g というドライバで書き込みに対応したらしい。したがって、今やデータ用ドライブとしての最適解はNTFSでフォーマットすることかもしれない。ただし、実装が完全でないので「コンピュータのクラッシュや電源断が発生すると、ファイルシステムが一貫していない状態になってしまう」(引用:[[wikipedia:ja:NTFS-3G]])ことがあるので、そういう時はWindows機につないでディスクチェックをかけよう。また、NTFSにするなら、Windows上でフォーマットをするのが一番間違いがないと思う。
  
Windowsでしか使わないのならNTFSがベストなのだが、Windows以外のOSを扱うときにはNTFSは使えない。LinuxやMacはNTFSの読み取りは可能だが、書き込みはできないからである。
+
少し古いLinuxシステムはやはりNTFSに書けなかったりするので、Linuxでのことだけを考えるならば、ext3にするのはひとつの確実な解である。Linux上でフォーマットを行い、ext3を選べばよい。ただし、この形式にするとWindowsでの読み書きの際には少し手間がかかる。次節参照。また、次節の方法を使ったとしても、Windowsからext3への書き込みは推奨されない。Windowsから書き込む可能性があるときはFAT32を使うのがいい。
  
 
== ext3のWindowsでの読み書き ==
 
== ext3のWindowsでの読み書き ==
33行: 61行:
  
 
===Ext2Fsdをオススメする理由===
 
===Ext2Fsdをオススメする理由===
ext3 には [[wikipedia:ja:inode|inode]] というデータ構造がある。伝統的には inode は 128 byte だった。今でも 128 と指定してフォーマットできるが、多分ドライブサイズかファイル数か、何かに制限があるのだろう[未確認]、最近はデフォルトでは inode は 256 byte でフォーマットされる。しかし、そうすると上記のようなソフトの多くは inode = 256 に対応していなかったりする。
+
ext3 には [[wikipedia:ja:inode|inode]] というデータ構造がある。元々 inode は 128 byte だった。今でも 128 と指定してフォーマットできるが、ファイル数の制限を引き上げるためか、次世代のext4と合わせるためか、最近はデフォルトでは inode は 256 byte でフォーマットされる。しかし、そうすると上記のようなソフトの多くは inode = 256 に対応していなかったりする。'''従って、ext3でフォーマットする際は inode のサイズをチェックされることを推奨する。'''
  
2010年12月時点で唯一対応しているフリーウェアは Ext2Fsd のみのようだ。[http://ubuntuforums.org/showthread.php?t=1049405] 非対応ソフトで inode = 256 のext3ドライブを読み込もうとしても、エラーメッセージも何も出ないので途方に暮れることになる。(筆者はこれ以外のどのソフトでもマウントできなかったので、Ext2 IFS の troubleshooting ページを読み[http://www.fs-driver.org/troubleshoot.html]、そこで配布されている mountdiag diagnosis tool を実行したところ、inode のサイズに関するメッセージが表示され、問題の特定に至った。)
+
では既に inode = 256 でフォーマットしてしまった場合はどうするか。2010年12月時点で唯一 256 の ext3 に対応しているフリーウェアは Ext2Fsd のみのようだ。[http://ubuntuforums.org/showthread.php?t=1049405] 非対応ソフトで 256 の ext3 を読み込もうとしても、エラーメッセージも何も出ないので途方に暮れることになる。(筆者はこれ以外のどのソフトでもマウントできなかったので、Ext2 IFS の troubleshooting ページを読み[http://www.fs-driver.org/troubleshoot.html]、そこで配布されている mountdiag diagnosis tool を実行したところ、inode のサイズに関するメッセージが表示され、問題の特定に至った。)
  
 
なお、このドライバはインストール時に ext2/3 への書き込みを(強制的に)許可するかどうかを聞かれる。しかし所詮は純正でない互換ツールなので、ファイルシステムの破損を招く可能性もあるためおすすめはできない。それでも書き込むというなら、後で必ずLinux上で [http://linux.die.net/man/8/e2fsck e2fsck] を実行しよう(ファイルシステムの整合性をチェックするプログラム)。
 
なお、このドライバはインストール時に ext2/3 への書き込みを(強制的に)許可するかどうかを聞かれる。しかし所詮は純正でない互換ツールなので、ファイルシステムの破損を招く可能性もあるためおすすめはできない。それでも書き込むというなら、後で必ずLinux上で [http://linux.die.net/man/8/e2fsck e2fsck] を実行しよう(ファイルシステムの整合性をチェックするプログラム)。
 
==まとめ==
 
{|
 
! フォーマット
 
! Linux !! Windows !! Mac OS X !! 補足
 
|-
 
! ext2/3
 
| ◎ default || △ 要上記ソフト || △ 要MacFUSE ||
 
|-
 
! FAT32
 
| ○ read/write || ◎ default || ○ read/write || 1ファイル4GiBまで
 
|-
 
! NTFS
 
|  △ read || ◎ default ||  △ read ||
 
|-
 
! HFS+
 
| × || × || ◎ default ||
 
|}
 
  
 
== 参考資料 ==
 
== 参考資料 ==
61行: 71行:
 
* http://ubuntuforums.org/showthread.php?t=1049405
 
* http://ubuntuforums.org/showthread.php?t=1049405
 
* http://knam.boo.jp/kn2/2009/07/412/
 
* http://knam.boo.jp/kn2/2009/07/412/
 +
* http://www.soluvas.com/read-browse-explore-open-ext2-ext3-ext4-partition-filesystem-from-windows-7/
  
 
== 編集履歴 ==
 
== 編集履歴 ==
* 2010-12-14 [[Member:Matsuda]]
+
* 2010-12-14 [[Member:Matsuda]] - 初版
 +
* 2010-12-28 [[Member:Matsuda]] - NTFS-3Gというものが存在することがわかったので、ext3プッシュからNTFSプッシュに書き換え。
 +
* 2011-03-01 [[Member:Matsuda]] - 参考文献追加

2011年7月31日 (日) 17:37時点における最新版

免責事項:このページは当研究室内での情報共有を目的とした覚え書きであり、内容の正確性・客観性は保証されません

バックアップは重要である。つい先日もある計算機 (Leliel) の内蔵HDが突然クラッシュし、筆者は半年間のシミュレーションデータを失った。データをマシン内に放置せず、必ずバックアップをとろう。

目次

とりあえずここだけ読んで

シミュレーションのデータなどをバックアップする際、scp など(GUIではWinSCPなど)を使ってネットワークで手元に持ってきてもいいのだが、データサイズが大きい計算をやっている人は注意されたい。ネットワークにあまり大きなデータを流すのはよくない。shared を使っている他の人にも影響を及ぼす可能性がある。ネットワークにも優しく、失敗の可能性が一番少ないのは、直接USBポータブルHDなどを接続してバックアップする方法である。

結論から言うと(最近のFedoraはよくできているので)、普通にWindows用のHDを買ってきて、USBでつなげばいい。 ただし、多くの製品は出荷時にFAT32でフォーマットされている。これでは4GiBを超えるサイズのファイルは保存できないので、特にデータ量が大きい時はWindows上でNTFS形式にフォーマットし直して使おう。(下の方に詳しく書いた)

Windows上でフォーマットするとき

マイコンピュータでドライブのアイコンを選んで、右クリック、「フォーマット」を選びます。ファイルシステム等をメニューから選択して、開始を押せばフォーマットされます。

Linux上でフォーマットするとき

LinuxにおいてHDのフォーマットをしたいとき、GParted というソフトを使うのが便利である。Fedoraにはデフォルトでインストールされていないので、

$ su
パスワード: (管理者パスワードを入力)
# yum install gparted

としてインストールしよう(解説記事)。

(yumが正しく動作しない場合は、プロキシの設定が正しく行われていない可能性がある。 Linux の便利機能参照 )

さて、フォーマットするとき問題になるのが、HDドライブのファイルシステムを何にするかである。

ディスクファイルシステム

ハードディスク内のファイルを管理するシステムのことをディスクファイルシステムと呼び、いくつかのフォーマットがある。Windowsで一般的なのはNTFS、少し古いフォーマットとしてFAT32がある。Linuxにおいては ext2 あるいは ext3 というフォーマット、MacではHFS+が一般的である。他にもISO 9660、UDF、XFSなど。

フォーマット Linux Windows Mac OS X 補足
ext2/3 ◎ native △ 要下記ソフト △ 要MacFUSE
FAT32 ○ read/write ◎ native ○ read/write 1ファイル4GiBまで
NTFS ○ read/write ◎ native △ 要NTFS for Mac
HFS+ × × ◎ native


一番多くのシステムでサポートされているのはFAT32であり、Windowsはもとより、Linux, Macも読み書きに対応する。ただしこれはやや古いフォーマットのため、ドライブサイズやファイルの数、ファイルの最大容量に制限があったりする。たとえば、4GiB以上のファイルは作れない。計算結果をまとめてtarballにしてバックアップ、といったことはできなくなる。データが膨大になる計算の場合はこれは顕著な問題となる。(内部向けメモ:例えば当研究室のMDコードは、1条件につきGiBオーダーの膨大なデータを吐き出す。)

以前はLinuxはNTFS形式のドライブには書き込めなかったが、最近のFedoraは NTFS-3g というドライバで書き込みに対応したらしい。したがって、今やデータ用ドライブとしての最適解はNTFSでフォーマットすることかもしれない。ただし、実装が完全でないので「コンピュータのクラッシュや電源断が発生すると、ファイルシステムが一貫していない状態になってしまう」(引用:wikipedia:ja:NTFS-3G)ことがあるので、そういう時はWindows機につないでディスクチェックをかけよう。また、NTFSにするなら、Windows上でフォーマットをするのが一番間違いがないと思う。

少し古いLinuxシステムはやはりNTFSに書けなかったりするので、Linuxでのことだけを考えるならば、ext3にするのはひとつの確実な解である。Linux上でフォーマットを行い、ext3を選べばよい。ただし、この形式にするとWindowsでの読み書きの際には少し手間がかかる。次節参照。また、次節の方法を使ったとしても、Windowsからext3への書き込みは推奨されない。Windowsから書き込む可能性があるときはFAT32を使うのがいい。

ext3のWindowsでの読み書き

ソフトウェアをインストールするとWindowsでもext3を読むことができる。いくつかのソフトが存在する。大きく分けて以下の2通りがある。

  1. 独立したアプリケーションの中でファイルを操作するタイプ
  2. Windowsドライブと同じようにマウントし、Windowsのエクスプローラにおいて操作するタイプ

いずれもフリーウェアである。この他にも有償ソフトが存在する模様。

Ext2Fsdをオススメする理由

ext3 には inode というデータ構造がある。元々 inode は 128 byte だった。今でも 128 と指定してフォーマットできるが、ファイル数の制限を引き上げるためか、次世代のext4と合わせるためか、最近はデフォルトでは inode は 256 byte でフォーマットされる。しかし、そうすると上記のようなソフトの多くは inode = 256 に対応していなかったりする。従って、ext3でフォーマットする際は inode のサイズをチェックされることを推奨する。

では既に inode = 256 でフォーマットしてしまった場合はどうするか。2010年12月時点で唯一 256 の ext3 に対応しているフリーウェアは Ext2Fsd のみのようだ。[1] 非対応ソフトで 256 の ext3 を読み込もうとしても、エラーメッセージも何も出ないので途方に暮れることになる。(筆者はこれ以外のどのソフトでもマウントできなかったので、Ext2 IFS の troubleshooting ページを読み[2]、そこで配布されている mountdiag diagnosis tool を実行したところ、inode のサイズに関するメッセージが表示され、問題の特定に至った。)

なお、このドライバはインストール時に ext2/3 への書き込みを(強制的に)許可するかどうかを聞かれる。しかし所詮は純正でない互換ツールなので、ファイルシステムの破損を招く可能性もあるためおすすめはできない。それでも書き込むというなら、後で必ずLinux上で e2fsck を実行しよう(ファイルシステムの整合性をチェックするプログラム)。

参考資料

編集履歴

  • 2010-12-14 Member:Matsuda - 初版
  • 2010-12-28 Member:Matsuda - NTFS-3Gというものが存在することがわかったので、ext3プッシュからNTFSプッシュに書き換え。
  • 2011-03-01 Member:Matsuda - 参考文献追加