「Reiser4」の版間の差分
(en:Reiser4への転送ページ) |
Kusanaginoturugi (トーク | 投稿記録) (序文を更新) |
||
(3人の利用者による、間の14版が非表示) | |||
1行目: | 1行目: | ||
+ | [[Category:ファイルシステム]] |
||
− | #redirect[[en:Reiser4]] |
||
+ | [[en:Reiser4]] |
||
+ | [[ru:Reiser4]] |
||
+ | {{Related articles start}} |
||
+ | {{Related|ファイルシステム}} |
||
+ | {{Related articles end}} |
||
+ | [[Wikipedia:Reiser4|Reiser4]] は、[[Wikipedia:ReiserFS|ReiserFS]] の後継ファイルシステムで、最初に [[Wikipedia:Namesys|Namesys]] と [[Wikipedia:Hans Reiser|Hans Reiser]] によってゼロから設計・開発されました。 |
||
+ | 多くのファイルを効率的に処理できるため(主に {{ic|/var}} でこの目的で使用されることが多い)、プラグインベースの設計を採用しており、インテリジェントな透過圧縮や、[[Wikipedia:Cyclic redundancy check#CRC-32_algorithm|crc32c]] アルゴリズムによるインラインデータとメタデータのチェックサム、さらに独自のサブボリューム実装によるオプションでの[https://reiser4.wiki.kernel.org/index.php/Reiser4_Mirrors_and_Failover ミラーとフェイルオーバー] サポートなどの機能を持つプラグインが含まれています。 |
||
+ | |||
+ | 機能、プラグイン、設計、mkfs やマウントオプションの詳細については、[https://reiser4.wiki.kernel.org/index.php/Main_Page こちら] で詳しく説明されています。 |
||
+ | |||
+ | == インストール == |
||
+ | |||
+ | {{Note| |
||
+ | * Reiser4 はまだ公式の Linux カーネルには含まれていません。メインラインカーネルに適用するパッチが提供されています。 |
||
+ | * 他のファイルシステム ([[Btrfs]] と同様) よりも少し多くの CPU を消費します。省電力に [[TLP]] を使用しているラップトップで問題が発生しないようにするには、{{ic|/etc/default/tlp}} で {{ic|SATA Link}} 省電力のオプションを無効にすることをお勧めします (繰り返しになりますが、 [[Btrfs]] と同様です) |
||
+ | * [[LILO]] は Reiser4 を正式にサポートする唯一のブートローダーですが、{{ic|/boot}} が Reiser4 としてフォーマットされている場合に問題が発生するようです |
||
+ | * [[アクセス制御リスト]] は実装されていないため、[[systemd/ジャーナル|journald]] が別のロギング [[デーモン]] または [[tmpfs]] にログを記録する必要があります。もう 1 つの回避策は、ACL サポートを使用せずにソースによって systemd をコンパイルすることですが、これはお勧めできません。 |
||
+ | }} |
||
+ | |||
+ | {{Tip|[http://gparted.sourceforge.net/livecd.php Gparted LiveCD] は、Gparted を直接起動する小規模な Linux ディストリビューションです。Reiser4 もサポートしており、既存のファイルシステムから Reiser4 への移行に使用できます。}} |
||
+ | |||
+ | Reiser4 ボリュームの作成、fsck、デバッグ用のユーティリティを提供する {{AUR|reiser4progs}} パッケージを [[インストール]] します。 |
||
+ | |||
+ | Reiser4 パッチ適用済みカーネルが必要です。パッチは [https://sourceforge.net/projects/reiser4/files/ Sourceforge]、または最近作成された [https://github.com/edward6/reiser4 Git リポジトリ] で見つけることができます。このリポジトリは現在、開発者、数学者、プログラマーの '''Edward Shishkin''' によって管理されています。 |
||
+ | |||
+ | === ブートローダー === |
||
+ | |||
+ | {{Note| |
||
+ | * Reiser4 ボリュームに {{ic|/boot}} を常駐させる場合は、ブートローダー設定ファイルのバックアップを検討する必要があります。 |
||
+ | * [[EFI]] システムは一般に、カーネルの起動に [[FAT32]] パーティションを必要とするため、EFI だけではなく、そのパーティションに {{ic|/boot}} ディレクトリを常駐させることが有利で、問題がない可能性があります。多くの EFI ユーザーは、{{ic|/boot}} ディレクトリ全体を [[ESP]] 上に持っています。 |
||
+ | }} |
||
+ | |||
+ | Reiser4 以外のファイルシステムを使用して、{{ic|/boot}} 用の小さな (20 〜 200mb) パーティションを作成し、{{ic|/boot}} フォルダを次の場所にコピーすることをお勧めします。それに応じてブートローダー設定を更新します。たとえば、[[#/boot/grub/grub.cfg]] を参照してください。 |
||
+ | |||
+ | [[EFI]] を使用せず、{{ic|/boot}} を含むすべてを Reiser4 パーティションに配置したい場合 (非推奨)、[[LILO]] を使用する必要があります。{{ic|lilo.conf}} を更新しようとするとエラーが発生する可能性があるため、これはお勧めできません。[[#/etc/lilo.conf]] を参照してください。 |
||
+ | |||
+ | ==Reiser4 に移動== |
||
+ | |||
+ | 次に、現在の root パーティションから新しい Reiser4 パーティションにデータをコピーします。Reiser4 パーティションに十分なディスク容量が存在することを確認してください: |
||
+ | # df -h |
||
+ | |||
+ | ===サンプル環境=== |
||
+ | |||
+ | <pre> |
||
+ | # 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 |
||
+ | </pre> |
||
+ | |||
+ | === フォーマット === |
||
+ | |||
+ | Reiser4 は、さまざまな種類のストレージメディア (SSD、HDD) に最適化されたさまざまなトランザクションモデルをサポートしているため、フォーマットおよびマウント中に使用されるオプションは異なります。 |
||
+ | |||
+ | {{Note| |
||
+ | * ''mkfs.reiser4'' のデフォルトには、zstd 圧縮が含まれています。 |
||
+ | ** zstd の代わりに lzo または gzip を使用するには、{{ic|1=-o compress=lzo1}} または {{ic|1=-o compress=gzip1}} を追加します。 |
||
+ | ** 圧縮を完全に無効にするには、{{ic|1=-o create=reg40}} を使用します。 |
||
+ | * さらに、インラインチェックサムプラグインは、{{ic|1=-o node=node41}} で有効にできます。 |
||
+ | * 機能、プラグイン、オプションの詳細については、[https://reiser4.wiki.kernel.org/index.php/Reiser4_Howto ドキュメント] を参照してください。 |
||
+ | }} |
||
+ | |||
+ | {{bc|1= |
||
+ | # mkfs.reiser4 /dev/sd''xY'' |
||
+ | # mkdir /mnt/reiser4 |
||
+ | # mount -t reiser4 -o txmod=journal,defaults,onerror=remount-ro /dev/sd''xY'' /mnt/reiser4 |
||
+ | }} |
||
+ | |||
+ | 次のオプションでフォーマットして ''cryptcompress'' プラグインを使用することが推奨されており、デフォルトでもあります。 |
||
+ | |||
+ | # mkfs.reiser4 -o create=ccreg40 /dev/sd''xY'' |
||
+ | |||
+ | Reiser4 には SSD ユーザー専用のオプションもあるため、ファイルシステムの作成時に {{ic|-d}} スイッチを追加してパーティションを破棄することをお勧めします。 |
||
+ | |||
+ | すでにハードウェア圧縮が行われているコントローラー (SandForce コントローラーなど) を備えたドライブの場合、SSD などでは圧縮プラグインを無効にしたほうがよい場合があります。 |
||
+ | |||
+ | # mkfs.reiser4 -d -o create=reg40,node=node41 /dev/nvme0n''X''p''Y'' |
||
+ | |||
+ | === システムをコピー === |
||
+ | |||
+ | パーティションをフォーマットしたら、現在のシステムを新しいパーティションにコピーしてシステムディレクトリを作成します。Arch Linux からコピーすることもできますが、[http://gparted.sourceforge.net/livecd.php Gparted LiveCD] を起動して新しい Reiser4 パーティションと現在の root パーティションをマウントする方が簡単です (後で makedev を使う必要がありません)。その後、以下のようにして全てをコピーします: |
||
+ | |||
+ | {{bc| |
||
+ | # cd /mnt |
||
+ | # mkdir oldroot |
||
+ | # mkdir reiser4 |
||
+ | # mount /dev/sd''xZ'' oldroot |
||
+ | }} |
||
+ | |||
+ | さまざまな種類のストレージメディアに最適化された、使用したいトランザクションモデルに応じて、マウントオプション {{ic|1=txmod=wa}} (SSD の場合)、{{ic|1=txmod=journal}} (HDD の場合) は、{{ic|-o}} スイッチを介してパーティションをマウントするときに定義する必要があります。デフォルトは {{ic|1=txmod=hybrid}} で、"wa"(write-anywhere)モデルと "ジャーナル" モデルをヒューリスティックに切り替えて、回転ディスク上のパフォーマンスを最適化すると同時に、過剰な断片化を回避しようとします。 |
||
+ | |||
+ | {{bc|1= |
||
+ | # mount -t reiser4 -o txmod=hybrid,defaults,onerror=remount-ro /dev/sd''xY'' /mnt/reiser4 |
||
+ | # cp -R -a /mnt/oldroot/* /mnt/reiser4/ |
||
+ | }} |
||
+ | |||
+ | 次に、{{ic|/boot}} パーティションをマウントする必要があります。まだマウントしていない場合は、元のルートパーティションから {{ic|/boot}} をコピーします。 |
||
+ | |||
+ | {{Note|Reiser4 パーティションから {{ic|/boot}} を空にしてマウントポイントとして使用することをお勧めします。これは後で fstab に反映されます。}} |
||
+ | |||
+ | {{bc| |
||
+ | # mkdir bootpart |
||
+ | # mount /dev/sd''xW'' bootpart |
||
+ | # cp -R -a /mnt/oldroot/boot/* /mnt/bootpart/ |
||
+ | }} |
||
+ | |||
+ | ブートローダーの設定を適切に編集することを忘れないでください ([[#ブートローダーの例]] を参照) |
||
+ | |||
+ | {{Note|再起動する前に GRUB をアップグレードした場合は、手動で grub を {{ic|/boot}} パーティションにインストールする必要がある場合があります。そうしないと、問題が発生して起動できなくなる可能性があります。この場合、LiveCD を使用して Chroot する必要があります。}} |
||
+ | |||
+ | === /etc/fstab === |
||
+ | |||
+ | Reiser4 が動作することを確認できたら、古いルートパーティションをフォーマットする必要があります。 |
||
+ | |||
+ | {{bc|1=# |
||
+ | # /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 ==== |
||
+ | |||
+ | {{bc|1= |
||
+ | # (0) Arch Linux |
||
+ | title Arch Linux |
||
+ | set root=(hd''m'',msdos''n'') |
||
+ | kernel /vmlinuz-linux root=/dev/sd''xY'' 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=(hd''m'',msdos''n'') |
||
+ | kernel /vlinuz-linux root=/dev/sda''xY'' 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 ==== |
||
+ | |||
+ | <pre> |
||
+ | # |
||
+ | # /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 |
||
+ | </pre> |
||
+ | |||
+ | ''lilo'' を実行して設定を更新: |
||
+ | # lilo |
||
+ | |||
+ | == トラブルシューティング == |
||
+ | |||
+ | * パーミッション: chown -R username.group <userdir> |
||
+ | * ファイルシステムを変更した後に ''su'' コマンドに問題が発生するようになった場合、{{Pkg|coreutils}} パッケージを再インストールしてください。 |
2024年9月4日 (水) 21:19時点における最新版
関連記事
Reiser4 は、ReiserFS の後継ファイルシステムで、最初に Namesys と Hans Reiser によってゼロから設計・開発されました。
多くのファイルを効率的に処理できるため(主に /var
でこの目的で使用されることが多い)、プラグインベースの設計を採用しており、インテリジェントな透過圧縮や、crc32c アルゴリズムによるインラインデータとメタデータのチェックサム、さらに独自のサブボリューム実装によるオプションでのミラーとフェイルオーバー サポートなどの機能を持つプラグインが含まれています。
機能、プラグイン、設計、mkfs やマウントオプションの詳細については、こちら で詳しく説明されています。
目次
インストール
Reiser4 ボリュームの作成、fsck、デバッグ用のユーティリティを提供する reiser4progsAUR パッケージを インストール します。
Reiser4 パッチ適用済みカーネルが必要です。パッチは Sourceforge、または最近作成された Git リポジトリ で見つけることができます。このリポジトリは現在、開発者、数学者、プログラマーの Edward Shishkin によって管理されています。
ブートローダー
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 /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
をコピーします。
# mkdir bootpart # mount /dev/sdxW bootpart # cp -R -a /mnt/oldroot/boot/* /mnt/bootpart/
ブートローダーの設定を適切に編集することを忘れないでください (#ブートローダーの例 を参照)
/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 パッケージを再インストールしてください。