Linux zfs


Linux zfsのメモ

zfs on rootのインストールの手順とか、tipsとか載せていく予定
自分のメモ的に書いてるので、そのままだと動作しない可能性有り

 ubuntuでのzfs on rootで起動しなくなった場合

ubuntuのDesktopCDで起動し、Terminal起動させてrootへなった後に、以下のコマンド実行


apt-add-repository --yes ppa:zfs-native/daily ;  apt-get update ; apt-get -y install debootstrap ubuntu-zfs ; modprobe zfs ; dmesg| grep ZFS

おかしくなったzfsファイルシステムを再マウント

zpool import -R /mnt -f rpool
mount /dev/vda1 /mnt/boot/grub
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
chroot /mnt /bin/bash --login

あとは、grubとかおかしくなった部分を編集

 ubuntuでのzfs on rootインストール

ubuntuのDesktopCDで起動し、Terminal起動させてrootへなった後に、以下のコマンド実行


apt-add-repository --yes ppa:zfs-native/daily ;  apt-get update ; apt-get -y install debootstrap ubuntu-zfs ; modprobe zfs ; dmesg| grep ZFS

インストール先のDiskの編集


fdisk /dev/vda

fdiskを使用して以下みたいに、2パーティション構成で

Disk /dev/vda: 536.9 GB, 536870912000 bytes
16 heads, 63 sectors/track, 1040253 cylinders, total 1048576000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0004325d

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1            2048       16383        7168   83  Linux
/dev/vda2           16384  1048575999   524279808   83  Linux

ファイルシステムとzfsのPoolの作成

mke2fs -m 0 -L /boot/grub -j /dev/vda1

zpool create -o ashift=12 -f rpool /dev/vda2

or

zpool create -o ashift=9 -f rpool /dev/vda2

以下zfsファイルシステムの作成

mke2fs -m 0 -L /boot/grub -j /dev/vda1
zpool create -o ashift=12 -f rpool /dev/vda2
or
zpool create -o ashift=9 -f rpool /dev/vda2

zfs create -o mountpoint=none rpool/ROOT
zfs create rpool/ROOT/ubuntu-1
zfs umount -a

zfs set mountpoint=/ rpool/ROOT/ubuntu-1
zpool set bootfs=rpool/ROOT/ubuntu-1 rpool
zpool export rpool

zpool import -R /mnt -f rpool
zfs create -o mountpoint=/opt rpool/ROOT/ubuntu-1/OPT
zfs create -o mountpoint=/usr rpool/ROOT/ubuntu-1/USR
zfs create -o mountpoint=/usr/src -o sync=disabled -o compression=lz4 rpool/ROOT/ubuntu-1/USR/SRC
zfs create -o mountpoint=/var rpool/ROOT/ubuntu-1/VAR
zfs create -o mountpoint=/var/log -o compression=lz4 rpool/ROOT/ubuntu-1/VAR/LOG
#homedirs
zfs create -o mountpoint=/home rpool/HOME
zfs create -o mountpoint=/root rpool/HOME/root

grub用のパーティションと初期インストール

mkdir -p /mnt/boot/grub
mount /dev/vda1 /mnt/boot/grub
debootstrap precise /mnt

cp /etc/hostname /mnt/etc/
cp /etc/hosts /mnt/etc/

echo "/dev/vda1  /boot/grub  auto  defaults  0  1" > /mnt/etc/fstab

chroot先で必要なデバイスファイルの作成

mount /dev/vda1 /mnt/boot/grub
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys

chrootしてから、環境セットアップ、必要なファイルのインストール

chroot /mnt /bin/bash --login

locale-gen en_US.UTF-8
apt-get update
apt-get -y install ubuntu-minimal python-software-properties software-properties-common

apt-add-repository --yes ppa:zfs-native/daily
apt-add-repository --yes ppa:zfs-native/grub
apt-add-repository --yes ppa:zfs-native/staging
apt-get update
apt-get -y install --no-install-recommends linux-image-generic linux-headers-generic
apt-get -y install --no-install-recommends linux-lts-saucy-tools-3.11.0-15 linux-lts-saucy-tools-common linux-tools-3.11.0-15-generic \
               linux-headers-generic-lts-saucy  linux-headers-3.11.0-15-generic linux-headers-3.11.0-15 linux-image-3.11.0-15-generic \
               linux-image-generic-lts-saucy linux-tools-generic-lts-saucy
apt-get -y install --no-install-recommends linux-tools-lts-raring linux-tools-lts-saucy
apt-get -y install ubuntu-zfs
apt-get -y install grub2-common grub-pc
apt-get -y install grub2-common=2.00-13ubuntu3+zfs3~raring grub-pc=2.00-13ubuntu3+zfs3~raring \
               grub-common=2.00-13ubuntu3+zfs3~raring grub-pc-bin=2.00-13ubuntu3+zfs3~raring
of
apt-get -y install grub2-common=1.99-21ubuntu3.11+zfs1 grub-pc=1.99-21ubuntu3.11+zfs1 grub-common=1.99-21ubuntu3.11+zfs1 \
               grub-pc-bin=1.99-21ubuntu3.11+zfs1
apt-get -y install zfs-initramfs
apt-get -y dist-upgrade

chroot内で残りの処理と処理終了

ユーザ作成

adduser USER
adduser USER sudo

grubをインストール

grub-install /dev/vda
update-grub

起動してるプロセスの終了

service rsyslog
service cron

処理終了

exit

インストール先のファイルシステムの後処理

umount /mnt/boot/grub
umount /mnt/dev
umount /mnt/sys
umount /mnt/proc
zfs umount -a
zpool export rpool