4 Extファイル・システムの管理

この章では、Oracle LinuxでExtファイル・システムを管理するためのタスクについて説明します。

Ext2、Ext3またはExt4ファイル・システムのBtrfsファイル・システムへの変換

btrfs-convertユーティリティを使用して、ext2ext3またはext4ファイル・システムをbtrfsに変換できます。ユーティリティによって、ext2_savedというスナップショットに元のファイル・システムのイメージが保存されます。このスナップショットによって、btrfsファイル・システムが変更されても、変換をロールバックできます。

ノート:

/bootなどのブート可能なパーティションまたはルート・ファイル・システムはbtrfsファイル・システムに変換できません。

ルート以外のファイル・システムを変換する方法

注意:

ファイル・システムの変換を実行する前に、その状態をリストアできるファイル・システムのバックアップを作成してください。

ルート以外のファイル・システムであるext2ext3またはext4ファイル・システムをbtrfsに変換するには、次の手順を実行します。
  1. ファイル・システムをアンマウントします。
    sudo umount mountpoint
  2. 基礎となるデバイス上でfsckの適切なバージョン(fsck.ext4など)を実行し、ファイル・システムの整合性を確認および修正します。
    sudo fsck.extN -f device
  3. ファイル・システムをbtrfsファイル・システムに変換します。
    sudo btrfs-convert device
  4. ファイル/etc/fstabを編集し、次のようにファイル・システムのファイル・システム・タイプをbtrfsに変更します。
    /dev/sdb               /myfs          btrfs    defaults  0 0
  5. 古いマウント・ポイントに変換済のファイル・システムをマウントします。
    sudo mount device mountpoint

 root以外のExt2ファイル・システムのExt3への変換

注意:

ファイル・システムの変換を実行する前に、その状態をリストアできるファイル・システムのバックアップを作成してください。

root以外のExt2ファイル・システムをExt3に変換するには:

  1. Ext2ファイル・システムをアンマウントします。

    sudo umount filesystem
  2. fsck.ext2を使用して、ファイル・システムをチェックします。
    bash-4.1# fsck.ext2 -f device
  3. 次のコマンドをExt2ファイル・システムに対応するブロック・デバイスを指定して使用します。

    sudo tune2fs -j device

    このコマンドによって、Ext3ジャーナルinodeがファイル・システムに追加されます。

  4. fsck.ext3を使用して、ファイル・システムをチェックします。
    bash-4.1# fsck.ext3 -f device
  5. /etc/fstabにあるファイル・システムのエントリを修正して、そのタイプがext2ではなくext3で定義されるようにします。

  6. これで、次のようにファイル・システムをいつでも再マウントできます。

    sudo mount filesystem

詳細は、tune2fs(8)マニュアル・ページを参照してください。

 rootのExt2ファイル・システムのExt3への変換

注意:

rootファイル・システムの変換を実行する前に、その状態をリストアできる完全なシステム・バックアップを作成してください。

rootのExt2ファイル・システムをExt3に変換するには:

  1. 次のコマンドをrootファイル・システムに対応するブロック・デバイスを指定して使用します。

    sudo tune2fs -j device

    このコマンドによって、Ext3ジャーナルが/.journalファイルとしてファイル・システムに追加されます。

  2. mountコマンドを実行して、rootファイル・システムとして現在マウントされているデバイスを判別します。

    次の例では、rootファイル・システムがディスク・パーティション/dev/sda2に相当します。
    sudo mount
    /dev/sda2 on / type ext2 (rw)
  3. システムを停止します。

  4. Oracle LinuxのブートCD、DVDまたはISOからシステムをブートします。https://edelivery.oracle.com/linuxからISOをダウンロードできます。

  5. インストール・メニューからインストール済システムのレスキューを選択します。プロンプトが表示されたら、言語とキーボードを指定し、インストール・メディアとしてローカルCD/DVDを選択し、いいえを選択してネットワーク・インタフェースの起動を回避し、スキップを選択してレスキュー環境の選択を省略します。

  6. シェルの起動を選択して、画面の一番下にbashシェル・プロンプト(bash-4.1#)を表示します。

  7. 既存のrootファイル・システムをLVMボリュームとして構成している場合、次のコマンドを使用してボリューム・グループ(vg_host01など)を起動します。
    bash-4.1# lvchange -ay vg_host01
  8. fsck.ext3を使用して、ファイル・システムをチェックします。
    bash-4.1# fsck.ext3 -f device

    前述の例では、devicerootファイル・システムのデバイスです(/dev/sda2など)。

    このコマンドによって、.journalファイルがジャーナルinodeに移動します。

  9. マウント・ポイント(/mnt1)を作成し、変換されたrootファイル・システムをそのマウント・ポイントにマウントします。次に例を示します。

    bash-4.1# mkdir /mnt1
    bash-4.1# mount -t ext3 device /mnt1
  10. テキスト・エディタを使用して、/mnt1/etc/fstabファイルを編集し、rootファイル・システムのファイル・システム・タイプをext3に変更します。次に例を示します。

    /dev/sda2        /       ext3    defaults  1 1
  11. マウントされたファイル・システムのrootにファイル.autorelabelを作成します。
    bash-4.1# touch /mnt1/.autorelabel

    /.autorelabelファイルが存在すると、SELinuxによってファイル・システム上のすべてのファイルのセキュリティ属性が再作成されます。

    ノート:

    .autorelabelファイルを作成しないと、システムを正常にブートできない可能性があります。ファイルを作成せずに再起動に失敗した場合、カーネル・ブート・パラメータにselinux=0を指定してSELinuxを一時的に無効にするか、enforcing=0を指定してSELinuxを許容モードで実行します。

  12. 変換されたrootファイル・システムをアンマウントします。
    bash-4.1# umount /mnt1
  13. ブートCD、DVDまたはISOを取り出し、システムを再起動します。

詳細は、tune2fs(8)マニュアル・ページを参照してください。