概要/Overview
- ZFS を Raspbian で使用する
- 参考: zfsonlinux/zfs:Building ZFS
-
linux-headers-$(uname -r)
の代わりに、raspberrypi-kernel-headers
環境/Environment
- Raspberry Pi 2/3
- Raspbian:
2017-01-11-raspbian-jessie-lite
手順
-
いつもの
- Burn Raspbian to SD
- パッケージ更新:
sudo apt-get update && sudo apt upgrade -y
-
ビルドに必要なパッケージのインストール
こぴぺsudo apt-get install -y build-essential autoconf libtool gawk alien fakeroot raspberrypi-kernel-headers && \ sudo apt-get install -y zlib1g-dev uuid-dev libattr1-dev libblkid-dev libselinux-dev libudev-dev libdevmapper-dev && \ sudo apt-get install -y parted lsscsi ksh
-
ビルドとインストール
DIR_WORK=${HOME}/work # cd ${DIR_WORK} # ソース取得. wget https://github.com/zfsonlinux/zfs/releases/download/zfs-0.6.5.9/spl-0.6.5.9.tar.gz wget https://github.com/zfsonlinux/zfs/releases/download/zfs-0.6.5.9/zfs-0.6.5.9.tar.gz # ワークフォルダにソース展開. mkdir zfs cd zfs tar xf ../spl-0.6.5.9.tar.gz tar xf ../zfs-0.6.5.9.tar.gz # OR ##git clone https://github.com/zfsonlinux/spl ##git clone https://github.com/zfsonlinux/zfs # ビルドとインストール. cd spl-* ./autogen.sh && ./configure && make -j4 sudo make install # sudo sh -c 'PATH=/home/pi/.local/bin:$PATH porg -lD "make install"' cd .. cd zfs-* ./autogen.sh && ./configure && make -j4 sudo make install #sudo sh -c 'PATH=/home/pi/.local/bin:$PATH porg -lD "make install"' cd .. # # 共有Libの更新 sudo ldconfig # cd ${HOME} # カーネルモジュール更新. sudo depmod -a
-
テスト : 256MBのファイルをつくって、そこで、zfsを使用してみる.
#rootになる. # rootでないと、'Permission denied the ZFS utilities must be run as root.' sudo -s # カーネルモジュール読み込み modprobe zfs lsmod # 256MBのファイル作成 dd if=/dev/zero of=/tmp/zfs256MB bs=1M count=256 #プールテスト zpool create tank /tmp/zfs256MB zpool list zpool status # FS作成 zfs create tank/test1 zfs list chown pi.pi -R /tank/test1 # プールの破棄 zpool destroy tank zpool list
実行例pi@raspberrypi:~ $ sudo zpool status pool: tank state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 /tmp/zfs256MB ONLINE 0 0 0 errors: No known data errors pi@raspberrypi:~ $ sudo zfs list NAME USED AVAIL REFER MOUNTPOINT tank 89K 208M 19K /tank tank/test1 19K 208M 19K /tank/test1 pi@raspberrypi:~ $
その他
- もうちと、zfsをお勉強しないといけない。
- USBドライブで、
zpool create hogehoge /dev/sda
みたいにできたはず。 - USBドライブ2台とかで、ミラーリングとかできるのだろうか?
-
起動時に再マウントするにはどうするのがいいだろうか?
=> (2017-3-2追記) archlinuxのZFSの自動起動のあたりから# pool作成後 zpool set cachefile=/usr/local/etc/zfs/zpool.cache <pool> systemctl enable zfs.target systemctl enable zfs-import-cache systemctl enable zfs-mount
cachefileは、
/etc/default/zfs
のZPOOL_CACHE=~
で指定? Raspbianで、rootfsとして使えるのだろうか?