Reiser4

提供: ArchWiki
2017年11月1日 (水) 23:39時点におけるKusakata (トーク | 投稿記録)による版 (同期)
ナビゲーションに移動 検索に移動

関連記事

Reiser4NamesysHans Reiser によってスクラッチから開発された、ReiserFS の後継ファイルシステムです。小さなファイルをとても効率的に扱うことができ (そのため /var でよく使われます)、安価な透過圧縮やブロックのサブアロケーションなどの機能を備えています。Reiser4 はアトミックなファイルシステムなので"ファイルシステムの操作は完全に行われたか、あるいは完全に行われていないかのどちらかしかなく、中途半端に行われることでファイルシステムが破損することはありません"。他の Linux ファイルシステムとの ベンチマーク もあります。

注意事項

  • Reiser4 を使うにはパッチが適用されたカーネルが必要です。
  • 他のファイルシステムよりも消費する CPU は多少、少なくなります。
  • LILO が唯一公式に Reiser4 をサポートしているブートローダーですが、/boot を Reiser4 でフォーマットすると問題が発生します。
  • まだ安定している状態とは言えません。
ノート: systemd 219 では、Reiser4 パーティションではアクセス制御リストはデフォルトでは有効になりません。/var を Reiser4 ファイルシステム上に配置する場合、アクセス制御リストを有効にしないと Tmpfs が正しくマウントされません。詳しくは Systemd#トラブルシューティング を見て下さい。
ヒント: Gparted LiveCD は Gparted を起動するための小規模な Linux ディストリビューションです。Reiser4 をサポートしています。

パッケージ

1. reiser4progsAUR パッケージをインストールしてください。

2. reiser4 のパッチが適用されたカーネルが必要です。パッチは http://sourceforge.net/projects/reiser4/files/reiser4-for-linux-3.x/ にあります。

3. ブートローダー (任意、/ (root) を reiser4 でフォーマットしたい場合は必須)

ノート: ブートローダーの設定はバックアップするようにしてください。

a) 推奨: GParted を使って Reiser4 以外のファイルシステムで /boot 用の小さな (20-200mb) パーティションを作成して、/boot フォルダをそのパーティションにコピーする。ブートローダーの設定を更新してください。例えば Grub2 を使用する場合:

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

b) Reiser4 パーティションに /boot を含むあらゆるファイルを置きたい場合、LILO を使う必要があります。lilo.conf を更新するときにおそらくエラーが表示されるため、推奨されません:

# lilo

4. 再起動

ノート: 以下は Reiser4 を / (root) として使用する手順です。Reiser を /var (など) のみで使用したい場合は、必要に応じて以下の手順を読み替えて下さい。

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

フォーマット

以下のコマンドを実行:

mkfs.reiser4 /dev/sdaX
mkdir /mnt/reiser4
mount -t reiser4 /dev/sdaX /mnt/reiser4
ノート: X はあなたのパーティション番号に置き換えてください。

以下のコマンドでフォーマットして Cryptcompress プラグインを使うことを推奨します:

mkfs.reiser4 -o create=ccreg40,compress=lzo1 /dev/sdaX

システムをコピー

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

cd /mnt
mkdir oldroot
mkdir reiser4
mount /dev/sdaX oldroot
mount /dev/sdaY reiser4 (the Reiser4 partition)
cp -R -a /mnt/oldroot/* /mnt/reiser4/

そして、/boot パーティションが既に存在する場合はマウントして、元の root パーティションから /boot をコピーする必要があります:

ノート: It is suggested to empty your /boot from the Reiser4 partition to use it as a mountpoint, which is reflected later in your fstab
mkdir bootpart
mount /dev/sdaZ bootpart
cp -R -a /mnt/oldroot/boot/* /mnt/bootpart/

ブートローダーの設定を忘れずに適切に編集してください (記事の下方にある例を参照)。

ノート: In case you upgraded grub before rebooting you may need to manually install grub to your /boot partition, otherwise, things may break and prevent you from booting. In this case using a LiveCD to Chroot and would be your last hope.

/etc/fstab:

ノート: Reiser4 が動作することが確認できたら、古い root パーティションをフォーマットしてください。
#
# /etc/fstab: static file system information
#
# <file system>	<dir>	      <type>  <options>	         <dump>	<pass>

/dev/sda1       /             reiser4 defaults,noatime,notail 0   1
/dev/sda2       /mnt/oldroot  ext4    defaults                0   0
/dev/sda3       /boot         ext2    defaults                0   1

ブートローダーの例

/boot/grub/grub.cfg:

# (0) Arch Linux
title  Arch Linux
set root=(hd0,msdos3)
kernel /vmlinuz-linux root=/dev/sda3 ro noatime notail acl init=/usr/bin/bootchartd
initrd /initramfs-linux.img

# (1) Arch Linux
title  Arch Linux Fallback
set root=(hd0,msdos3)
kernel /vlinuz-linux root=/dev/sda3 ro
initrd /initramfs-linux-fallback.img

grub-mkconfig を実行して設定を更新:

# 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 パッケージを再インストールしてください。