人気ブログランキング | 話題のタグを見る

だらりぃ~

Raspberry Pi: ルートパーティションをF2FSに変更

新しくmicroSDカードを買いました。
Raspberry Pi: ルートパーティションをF2FSに変更_e0044974_07251266.jpg
これはRaspberry Pi用です。先月SDカードが壊れてしまってたので買い替えです。
といっても、相変わらず気温を計ってグラフ化しているだけです。

ただ、前回SDカードが壊れたのを受けて、SDカードへの書き込み抑制のためにいくつか対策をしてみました。

  1. ルートパーティションのファイルシステムをF2FSに変更
  2. /var/log以下をLog2RAMでRAMディスク化
  3. Muninのグラフ生成、HTML生成を動的に行う




ちなみに今回のmicroSDカードは、シリコンパワーSP032GBSTHBU1V20BS (32GB、class10 UHS-1対応、最大読込85MB/s、アダプタ付)です。選んだ理由は単に安かったからです。

(当初Rasbinのディスクイメージ(2016-11-25-raspbian-jessie)の方で試したところ、Kernel panicで起動できなかったので、相性には注意が必要かもしれません。NOOBSでは問題ありませんでした。)



以下、ルートパーティションF2FS化の手順についての備忘録
■F2FS化の手順概要
(参考:http://whitehorseplanet.org/gate/topics/documentation/public/howto_ext4_to_f2fs_root_partition_raspi.html)
  1. 普通にSDカードにOSをインストールする
  2. インストールしたSDカードをPCにつないでルートパーティションのファイルを退避する
  3. PCでSDカードのルートパーティションをF2FSでフォーマットしなおす
  4. 退避したルートパーティションのファイルを書き戻す
  5. マウント情報のファイルシステムの情報を変更する(/boot/cmdline.txt、/etc/fstab)

■OSインストール
SDFormatter V4.0でSDカードをフォーマット
・Raspberry Pi 2 model BにNOOBS (Ver.2.1.0)でOSインストール。
・OSインストール後、設定ツール(Preference)でキーボード、ロケール、タイムゾーン等を設定、再起動
・ネットワーク(wifi)設定。

■ルートパーティションをF2FSに変更
(別途、作業用のUbuntu(16.0.4TLS)マシン(仮想マシン)とUSB接続のSDカードリーダが必要)

・Raspberry Pi (Rasbian)にf2fs用のツールをインストールしてシャットダウンさせる
$ sudo apt-get install f2fs-tools
$ sudo shutdown -h now
ちなみにこの時点でのSDカードのパーティションは下記の通り。
$ sudo fdisk -l /dev/mmcblk0

Disk /dev/mmcblk0: 29 GiB, 31104958464 bytes, 60751872 sectors
:(略)
Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 8192 2496093 2487902 1.2G e W95 FAT16 (LBA)
/dev/mmcblk0p2 2496094 60751871 58255778 27.8G 5 Extended
/dev/mmcblk0p5 2498560 2564093 65534 32M 83 Linux
/dev/mmcblk0p6 2564096 2699263 135168 66M c W95 FAT32 (LBA)
/dev/mmcblk0p7 2703360 60751871 58048512 27.7G 83 Linux

$ mount | grep mmc
/dev/mmcblk0p7 on / type ext4 (rw,noatime,data=ordered)
/dev/mmcblk0p6 on /boot type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro)
/dev/mmcblk0p5 on /media/pi/SETTINGS type ext4 (rw,nosuid,nodev,relatime,data=ordered,uhelper=udisks2)
--ここから作業用Ubuntuマシンでの操作---
・シャットダウン後、SDカードをRaspberry Piから抜いてUbuntuのSDカードリーダに挿入 (→SDカードは/dev/sdfとして認識された)

・ルートパーティション(/dev/sdf7)のファイルを取得
# mount /dev/sdf7 /mnt
# cd /mnt
# tar cvzf ~/ras-root.tar.zip .
# cd
# umount /mnt

・f2fsファイルシステム作成 ※作業用Ubuntuにもf2fs-toolsパッケージが必要。
# mkfs.f2fs /dev/sdf7
・ルートパーティションのファイルを書き戻し
# mount /dev/sdf7 /mnt
# cd /mnt
# tar xvzpf ~/ras-root.tar.zip

・マウント情報変更
# vi /mnt/etc/fstab
:(略)
/dev/mmcblk0p7 / f2fs defaults,noatime 0 1

# cd
# umount /mnt

# mount /dev/sdf6 /mnt
# vi /mnt/cmdline.txt
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p7 rootfstype=f2fs elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles

----ここまで作業用Ubuntuで操作---

・SDカードをRaspberry Piに戻す

・Raspberry Pi起動
無事起動したらマウント状態を確認する。
$ mount | grep mmc
/dev/mmcblk0p7 on / type f2fs (rw,noatime,background_gc=on,user_xattr,acl,inline_data,extent_cache,active_logs=6)
:(略)
→ ルートがf2fsでマウントされている。F2FS化完了。


■その他
起動後必要に応じて、OSの更新なりを行う。

・OS、ファームウェア更新
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo rpi-update
※ファームウェア、カーネルの更新


・swapの無効化
$ free
total used free shared buffers cached
Mem: 947732 280172 667560 7980 1036 189220
-/+ buffers/cache: 89916 857816
Swap: 102396 0 102396
→ デフォルトではswapが使われている。
$ sudo insserv -s | grep dphys-swapfile
S:02:2 3 4 5:dphys-swapfile

dphys-swapfileが有効になっているので無効化する。

$ sudo insserv -r dphys-swapfile

→再起動して、swapが無効になっていることを確認する。

・起動時のXサーバの停止(テキストログイン)
デスクトップをほとんど使わないので、Xサーバは停止する。
$ sudo raspi-config

3 Boot Options Configure options for start-up
 Desktop / CLI Choose whether to boot into a desktop environment or the command line
  Console Text console, requiring user to login

→再起動して画面を確認する。。

Xを停止すると/var/log/messagesに下記が出るようになるので抑制する。
(参考:https://www.netfort.gr.jp/~tosihisa/notebook/doku.php/raspberrypi/log20151101_rsyslogd-2007)
$ sudo vi /etc/rsyslog.conf

#daemon.*;mail.*;\
# news.err;\
# *.=debug;*.=info;\
# *.=notice;*.=warn |/dev/xconsole

※/dev/xconsoleへの出力を停止する

$ sudo /etc/init.d/rsyslog restart
・VNCサーバの確認
デフォルトでVNCサーバ(realvnc-vnc-server-5.3.2)はインストールされているのでとりあえずはそのまま使用する。

VNCサーバの起動
※サービスで自動起動させることもできるが、当面は必要な時だけ立ち上げることとする。
$ vncserver :1 -geometry 1024x768 -depth 24
VNC(R) Server 5.3.2 (RasPi) (r22607) ARMv6 (Oct 4 2016 11:26:16)
Copyright (C) 2002-2016 RealVNC Ltd.

New desktop is raspberrypi:1 (192.168.0.100:1)

VNCクライアントで接続できることを確認する。
WindowsのVNCクライアントとしては、RealVNC Viewerが使用できる。スクリーン番号:1でサーバを起動した場合は、IPアドレス:5901で接続できる。
※TightVNC Viewerでは"No security types supported"と出て接続できない模様。


以上


by dalary | 2016-12-10 08:54 | PC・ゲーム
<< Raspberry Pi: L... 雪の六義園 >>



今日もだらだら過ごす「だらりぃ~まん」の生態

by dalary
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
カテゴリ
記事ランキング
画像一覧
検索
以前の記事
その他のジャンル