コンテンツにスキップ

Reiser4

提供: ArchWiki

Reiser4 は、ReiserFS の後継ファイルシステムで、最初に NamesysHans Reiser によってゼロから設計・開発されました。 多くのファイルを効率的に処理できるため(主に /var でこの目的で使用されることが多い)、プラグインベースの設計を採用しており、インテリジェントな透過圧縮や、crc32c アルゴリズムによるインラインデータとメタデータのチェックサム、さらに独自のサブボリューム実装によるオプションでのミラーとフェイルオーバー サポートなどの機能を持つプラグインが含まれています。

機能、プラグイン、設計、mkfs やマウントオプションの詳細については、こちら で詳しく説明されています。

インストール

ノート
  • Reiser4 はまだ公式の Linux カーネルには含まれていません。メインラインカーネルに適用するパッチが提供されています。
  • 他のファイルシステム (Btrfs と同様) よりも少し多くの CPU を消費します。省電力に TLP を使用しているラップトップで問題が発生しないようにするには、/etc/default/tlpSATA Link 省電力のオプションを無効にすることをお勧めします (繰り返しになりますが、 Btrfs と同様です)
  • LILO は Reiser4 を正式にサポートする唯一のブートローダーですが、/boot が Reiser4 としてフォーマットされている場合に問題が発生するようです
  • アクセス制御リスト は実装されていないため、journald が別のロギング デーモン または tmpfs にログを記録する必要があります。もう 1 つの回避策は、ACL サポートを使用せずにソースによって systemd をコンパイルすることですが、これはお勧めできません。
ヒント Gparted LiveCD は、Gparted を直接起動する小規模な Linux ディストリビューションです。Reiser4 もサポートしており、既存のファイルシステムから Reiser4 への移行に使用できます。

Reiser4 ボリュームの作成、fsck、デバッグ用のユーティリティを提供する reiser4progsAUR パッケージを インストール します。

Reiser4 パッチ適用済みカーネルが必要です。パッチは Sourceforge、または最近作成された Git リポジトリ で見つけることができます。このリポジトリは現在、開発者、数学者、プログラマーの Edward Shishkin によって管理されています。

ブートローダー

ノート
  • Reiser4 ボリュームに /boot を常駐させる場合は、ブートローダー設定ファイルのバックアップを検討する必要があります。
  • EFI システムは一般に、カーネルの起動に FAT32 パーティションを必要とするため、EFI だけではなく、そのパーティションに /boot ディレクトリを常駐させることが有利で、問題がない可能性があります。多くの EFI ユーザーは、/boot ディレクトリ全体を ESP 上に持っています。

Reiser4 以外のファイルシステムを使用して、/boot 用の小さな (20 〜 200mb) パーティションを作成し、/boot フォルダを次の場所にコピーすることをお勧めします。それに応じてブートローダー設定を更新します。たとえば、#/boot/grub/grub.cfg を参照してください。

EFI を使用せず、/boot を含むすべてを Reiser4 パーティションに配置したい場合 (非推奨)、LILO を使用する必要があります。lilo.conf を更新しようとするとエラーが発生する可能性があるため、これはお勧めできません。#/etc/lilo.conf を参照してください。

Reiser4 に移動

次に、現在の root パーティションから新しい Reiser4 パーティションにデータをコピーします。Reiser4 パーティションに十分なディスク容量が存在することを確認してください:

# df -h

サンプル環境

# fdisk -l
* /dev/sda1: (10 Gb, 5 Gb free); Reiserfs /mnt/reiser4
* /dev/sda2: (10 Gb, 10 Gb free); Reiser4 /
* /dev/sda3: (200 Mb, 180 Mb free); ext2 /boot

フォーマット

Reiser4 は、さまざまな種類のストレージメディア (SSD、HDD) に最適化されたさまざまなトランザクションモデルをサポートしているため、フォーマットおよびマウント中に使用されるオプションは異なります。

ノート
  • mkfs.reiser4 のデフォルトには、zstd 圧縮が含まれています。
    • zstd の代わりに lzo または gzip を使用するには、-o compress=lzo1 または -o compress=gzip1 を追加します。
    • 圧縮を完全に無効にするには、-o create=reg40 を使用します。
  • さらに、インラインチェックサムプラグインは、-o node=node41 で有効にできます。
  • 機能、プラグイン、オプションの詳細については、ドキュメント を参照してください。
# mkfs.reiser4 /dev/sdxY
# mkdir /mnt/reiser4
# mount -t reiser4 -o txmod=journal,defaults,onerror=remount-ro /dev/sdxY /mnt/reiser4

次のオプションでフォーマットして cryptcompress プラグインを使用することが推奨されており、デフォルトでもあります。

# mkfs.reiser4 -o create=ccreg40 /dev/sdxY

Reiser4 には SSD ユーザー専用のオプションもあるため、ファイルシステムの作成時に -d スイッチを追加してパーティションを破棄することをお勧めします。

すでにハードウェア圧縮が行われているコントローラー (SandForce コントローラーなど) を備えたドライブの場合、SSD などでは圧縮プラグインを無効にしたほうがよい場合があります。

# mkfs.reiser4 -d -o create=reg40,node=node41 /dev/nvme0nXpY

システムをコピー

パーティションをフォーマットしたら、現在のシステムを新しいパーティションにコピーしてシステムディレクトリを作成します。Arch Linux からコピーすることもできますが、Gparted LiveCD を起動して新しい Reiser4 パーティションと現在の root パーティションをマウントする方が簡単です (後で makedev を使う必要がありません)。その後、以下のようにして全てをコピーします:

# cd /mnt
# mkdir oldroot
# mkdir reiser4
# mount /dev/sdxZ oldroot

さまざまな種類のストレージメディアに最適化された、使用したいトランザクションモデルに応じて、マウントオプション txmod=wa (SSD の場合)、txmod=journal (HDD の場合) は、-o スイッチを介してパーティションをマウントするときに定義する必要があります。デフォルトは txmod=hybrid で、"wa"(write-anywhere)モデルと "ジャーナル" モデルをヒューリスティックに切り替えて、回転ディスク上のパフォーマンスを最適化すると同時に、過剰な断片化を回避しようとします。

# mount -t reiser4 -o txmod=hybrid,defaults,onerror=remount-ro /dev/sdxY /mnt/reiser4
# cp -R -a /mnt/oldroot/* /mnt/reiser4/

次に、/boot パーティションをマウントする必要があります。まだマウントしていない場合は、元のルートパーティションから /boot をコピーします。

ノート Reiser4 パーティションから /boot を空にしてマウントポイントとして使用することをお勧めします。これは後で fstab に反映されます。
# mkdir bootpart
# mount /dev/sdxW bootpart
# cp -R -a /mnt/oldroot/boot/* /mnt/bootpart/

ブートローダーの設定を適切に編集することを忘れないでください (#ブートローダーの例 を参照)

ノート 再起動する前に GRUB をアップグレードした場合は、手動で grub を /boot パーティションにインストールする必要がある場合があります。そうしないと、問題が発生して起動できなくなる可能性があります。この場合、LiveCD を使用して Chroot する必要があります。

/etc/fstab

Reiser4 が動作することを確認できたら、古いルートパーティションをフォーマットする必要があります。

#
# /etc/fstab: static file system information
#
# <file system>  <dir>  <type>  <options>  <dump>  <pass>

/dev/xY  /             reiser4  defaults,txmod=wa,onerror=remount-ro,discard  0   1
/dev/xZ  /mnt/oldroot  ext4     defaults                                      0   0
/dev/xW  /boot         ext2     defaults                                      0   1

ブートローダーの例

/boot/grub/grub.cfg

# (0) Arch Linux
title  Arch Linux
set root=(hdm,msdosn)
kernel /vmlinuz-linux root=/dev/sdxY ro rootfstype=reiser4 rootflags=defaults,txmod=journal,onerror=remount-ro init=/usr/bin/bootchartd
initrd /initramfs-linux.img

# (1) Arch Linux
title  Arch Linux Fallback
set root=(hdm,msdosn)
kernel /vlinuz-linux root=/dev/sdaxY ro rootfstype=reiser4 rootflags=defaults,txmod=journal,onerror=remount-ro
initrd /initramfs-linux-fallback.img

次を実行します。

# grub-mkconfig -o /boot/grub/grub.cfg

/etc/lilo.conf

#
# /etc/lilo.conf
#

boot=/dev/hda
# This line often fixes L40 errors on bootup
# disk=/dev/hda bios=0x80

default=Arch4
timeout=20
lba32
prompt
compact

image=/boot/vmlinuz-linux
        label=Arch4
        root=/dev/hda5
        append="video=vesafb:1024x768-24@56,ywrap,mtrr splash=verbose,theme:darch console=tty1 resume2=swap:/dev/hdb1"
initrd=/boot/initramfs-linux.img
read-only

image=/boot/vmlinuz-linux
        label=Arch
        root=/dev/hda3
        append="video=vesafb:1024x768-24@56,ywrap,mtrr splash=verbose,theme:darch console=tty1 resume2=swap:/dev/hdb1"
initrd=/boot/initramfs-linux.img
read-only

lilo を実行して設定を更新:

# lilo

トラブルシューティング

  • パーミッション: chown -R username.group <userdir>
  • ファイルシステムを変更した後に su コマンドに問題が発生するようになった場合、coreutils パッケージを再インストールしてください。