LoginSignup
7
6

More than 5 years have passed since last update.

[メモ](RaspberryPi) Building ZFS on Raspbian

Last updated at Posted at 2017-02-28

概要/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

手順

  1. いつもの

    • Burn Raspbian to SD
    • パッケージ更新:
      sudo apt-get update && sudo apt upgrade -y
  2. ビルドに必要なパッケージのインストール

    こぴぺ
    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. ビルドとインストール

    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
    
  4. テスト : 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/zfsZPOOL_CACHE=~で指定?

  • Raspbianで、rootfsとして使えるのだろうか?

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6