概要/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
3. ビルドとインストール
```bash
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
```shell-session:実行例
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として使えるのだろうか?