駄文置場

PC、ガジェット、音楽に関して自分が興味がある事をツラツラと書いていく駄文置場です。

Raspberry Pi 3 Model B

Raspberry Pi 3でHDDブートを行う。

先日PCのパーツ類を整理していたら、2.5インチの東芝製HDDが出てきました。

手元のRaspberry Pi 3はSDカードの延命対策は行っているものの、
どうせなら更なる延命化を進めるべく、HDDからブートできないか調べてみました。

★前提のお話

Raspberry Pi 3でHDDからブートする場合、2つの方法があります。

1)SDカートからブートし、ブートローダ以外のデータを全てすべてHDDに置く方法
2)完全に全てのデータをHDDに移し、純粋にHDDからブートする方法

これ以下は、Raspberry Pi 3 Model B のお話となります。
最新の Raspberry Pi 3 Model B+ はHDDブートに対応している(?)ようなので、
以後の前提の話は当てはまらない可能性があります。


この2つの方法ですが、それぞれメリット・デメリットがあります。
それらを踏まえ、今回は 1) の方法を取ることとしました。

理由ですが、2)の方法の場合、完全にSDカードレスですので、
延命もなにも、そもそもSDカードが壊れる事はなくなります。

しかしながら Raspberry Pi 3 Model B の場合、
起動時は必ず最初にSDカードを見に行く仕様になっており、
その上でSDカードが接続されていない事を認識し、
さらに数秒の時間をおいてHDDを見にいき、起動するというプロセスを取ります。
つまり 2) の方法は起動に時間がかかります。

もう1点問題があります。

Raspberry Pi 3 Model Bでは USB-HDD を認識するためのタイムアウトが、
5秒に固定されています。

つまり 5秒以内でシークがし、
ブートプロセスに入る事ができるHDDであれば問題ないのですが、
相性だったり、設計が古いなどの理由で、
5秒 のタイムアウトに間に合わない場合、ブートが失敗するリスクがあります。
※これは最近のHDDでは流石にないでしょうが…。

一方で 1) の方法はSDカードにブートローダがあるため、
起動時にHDDを探しにいくという無駄な時間は発生しません。
またブートローダを最初にSDカードから読み込んでしまうために、
HDDの認識が間に合わず、ブートが失敗するという事もありません。

これらを踏まえ、以下は 1) を前提とした作業となります。
※実際にはSDカードからブートするので、HDDブートというのは偽りですが…。

★下準備

今回は東芝のMK5059GSXPいう500GBの2.5インチHDDを使用しました。

ケースはOWL-EGP25/U3を利用し、
Raspberry Pi 3のUSBポート2本に差し込んで使っています。

写真で見るとこのような感じです。(ゴチャゴチャしていてすみません…)


cameringo_20171204_200824

★設定作業開始

今回はこちらの記事に書いた環境で作業をする事を前提に書いています。

まず最初に TeraTerm を起動し、SSHでRaspberry Pi 3にログインします。
続けて以下作業を行います。

1)/dev/sda にマウントされている事を確認します。

$ sudo fdisk -l

2)パーティションの作成します。
$ sudo fdisk /dev/sda

d → n → エンター4回 → w
※最後に赤字で警告がでても正常終了しています。

3)パーティションをアンマウントします

$ sudo umount /dev/sda1

4)パーティションをフォーマットします

$ sudo mkfs.ext4 /dev/sda1

5)SDカードの内容をHDDにコピーします。

$ sudo mkdir /mnt/usd /mnt/hdd
$ sudo mount /dev/mmcblk0p2 /mnt/usd
$ sudo mount /dev/sda1 /mnt/hdd
$ (cd /mnt/usd; sudo tar --backup -c *)|sudo tar -C /mnt/hdd -xv

6)cmdline.txtをバックアップします。

$ sudo cp /boot/cmdline.txt /boot/cmdline_ORG.txt

7)HDDを起動用として使えるように変更をします。

$ sudo mkdir /mnt/boot
$ sudo mount /dev/mmcblk0p1 /mnt/boot
$ sudo nano /mnt/boot/cmdline.txt

nanoが開いたらcmdline.txtのroot部分を、

… root=/dev/sda1 … 

のように変更します。

8)メモリの内容をシンクした後リブートします。

$ sudo sync
$ sudo reboot

9)起動後  /mnt を削除し / の容量が増えているか確認します。

$ sudo rm -r /mnt
$ df -h

※ / の容量が大幅に増えていれば無事成功です。

---------------------------------

これで /boot 以外は全てHDD上のファイルを見に行く事になりますので、
実行中はSDカードへの負担はかからないようになりました。

心配していたのは、Rasberry Pi 3のUSBからの給電のみで、
HDDにアクセス(ブート)出来るかだったのですが、問題なく起動したのでひと安心です。
5V-2.5AのACアダプタを使っており、電源に余裕があった事が功を奏したのかもしれませんね。

これで当面、死活監視用サーバー(?)として活躍してくれそうです。

Raspberry Pi 3でサーバー死活監視+エラー時にGmail送信環境を構築する。

WindowsPCからリモートSSHにて作業する事を想定しています。

また、TeraTermを使って作業をしておりますが、
リンク先の作業が住んでいるRasberry Pi を使っての作業を想定しています。

1)TeraTermでRasberry Piにリモートログインし最初に nagios3 をインストールします。

nagiosは既にver5(?)まで更新が進んでいるようですが、
nagios3はパッケージ化されており、
Rasnerry Piへのインストールが簡単なため、Ver3で構築しています。

$ sudo apt-get install nagios3

インストール途中でCUI画面でパスワードを聞かれるので、
2回とも同じパスワードを入力します。
このパスワードが管理画面のログインパスワードになるので忘れない事。

2)自分で監視したいローカルサーバー用の設定ファイルを作成します。

$ sudo nano /etc/nagios3/conf.d/my-server.cfg

PING監視する設定です。
192.168.x.xは監視するローカルPCのIPアドレスを設定します。
今回は死活監視のみなのでhost{}だけ記述します。
死活監視はPINGを飛ばす事で実行されます。

service{}で監視先PCのサービスを監視する事もできます。
今回は利用しないのでコメントアウトにしていますが、
書き方のリファレンスとして意図的に残しています。

---------------------------------
define host{
use generic-host
host_name name(任意)
address 192.168.x.x
}
#define service{
# use generic-service
# host_name name(任意)
# service_description PING
# check_command check_ping!100.0,20%!500.0,60%
#}
---------------------------------

3)nagios3を再起動します。

$ sudo /etc/init.d/nagios3 restart

4)管理画面にアクセスできるかブラウザでチェックします。

http://192.168.x.x/nagios3

ID : nagiosadmin
PASS : CUI画面で設定したもの

左側のメニューのhostの中に、
自分で設定したPCが追加されている事を確認し、
ブラウザを閉じてターミナルに戻り設定を続ける。

5)localhostのDISK監視を外します。

$ sudo nano /etc/nagios3/conf.d/localhost_nagios2.cfg

以下の部分をコメントアウトします。

---------------------------------
# Define a service to check the disk space of the root partition
# on the local machine.  Warning if < 20% free, critical if
# < 10% free space on partition.

# define service{
# use generic-service         ; Name of service template to use
# host_name localhost
# service_description Disk Space
# check_command check_all_disks!20%!10%
#        }
---------------------------------

6)logアーカイブをテンポラリフォルダに作るようにする。

$ sudo nano /etc/nagios3/nagios.cfg

初期値では1日に1回ログがアーカイブされるようになっています。
アーカイブされるログは/tmpに作るようにして、
再起動の度に消去するようにします。
中段あたりを以下のように変更します。

---------------------------------
# LOG ARCHIVE PATH
# This is the directory where archived (rotated) log files should be
# placed (assuming you've chosen to do log rotation).

log_archive_path=/tmp/archives
---------------------------------

7)メール送信に必要なアプリをインストールします。

続いてエラーが発生したらGmailが届くようにします。
なおGmailの2段階認証にも対応させる事もきるのですが、
自分は2段階認証を使わないのでOFFにしています。

$ sudo apt-get install ssmtp
$ sudo apt-get install mailutils

8)Gmailを送信できるように設定します。

$ sudo nano /etc/ssmtp/ssmtp.conf

---------------------------------
#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=xxx@gmail.com

# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=smtp.gmail.com:587
AuthUser=xxx@gmail.com
AuthPass=password
UseSTARTTLS=YES
---------------------------------

9)メール送信テストを実施します。

$ mail xxx@gmail.com
Subject:test
テスト送信
"Ctrl + d" 
Cc:
"Ctrl + d" 

この後Gmailの送信がブロックされ、警告が管理者メールに届きます。
そのため対応できるようにGmailにログインし設定を変更します。
以下の画面のように設定してください。


名称未設定

10)Gmailのメールアドレスを送信先に設定します。(赤字)

$ sudo nano /etc/nagios3/conf.d/contacts_nagios2.cfg

---------------------------------
define contact{
        contact_name root
        alias Root
        service_notification_period 24x7
        host_notification_period 24x7
        service_notification_options w,u,c,r
        host_notification_options d,r
        service_notification_commands notify-service-by-email
        host_notification_commands notify-host-by-email
        email xxx@gmail.com
       }
---------------------------------

11)初期設定のホストチェック用のpingが遅いため速い物と入れ替えます。

$ cd /usr/lib/nagios/plugins
$ chmod u+s check_icmp
$ cd /etc/nagios-plugins/config
$ sudo cp ping.cfg ping.cfg_old
$ sudo nano ping.cfg

---------------------------------
# 'check_ping' command definition
define command{
        command_name    check_ping
        command_line    /usr/lib/nagios/plugins/check_icmp -H '$HOSTADDRESS$' -w '$ARG1$' -c '$ARG2$' -n 5
        }


# 'check-host-alive' command definition
define command{
        command_name    check-host-alive
        command_line    /usr/lib/nagios/plugins/check_icmp -H '$HOSTADDRESS$' -w 5000,100% -c 5000,100% -n 5
        }
---------------------------------

12)タイムゾーンを日本に合わせる

$ cd /etc/nagios3
$ sudo nano apache2.conf
※赤字を追記
---------------------------------
<DirectoryMatch (/usr/share/nagios3/htdocs|/usr/lib/cgi-bin/nagios3|/etc/nagios3/stylesheets)>

        SetEnv TZ "Asia/Tokyo"

        Options FollowSymLinks
---------------------------------

$ sudo nano nagios.cfg
※かなり下の方。赤字を追記。

---------------------------------
# TIMEZONE OFFSET
# This option is used to override the default timezone that this
# instance of Nagios runs in.  If not specified, Nagios will use
# the system configured timezone.
#
# NOTE: In order to display the correct timezone in the CGIs, you
# will also need to alter the Apache directives for the CGI path
# to include your timezone.  Example:
#
#   <Directory "/usr/local/nagios/sbin/">
#      SetEnv TZ "Australia/Brisbane"
#      ...
#   </Directory>

#use_timezone=US/Mountain
#use_timezone=Australia/Brisbane
use_timezone=Asia/Tokyo
---------------------------------

13)nagios3&apache2を再起動します。

$ sudo /etc/init.d/nagios3 restart
$ sudo service apache2 restart

以上でnagios3の監視の構築と、エラーになったらGmailが届くようになります。

Raspberry Pi 3の初期設定、セキュリティ、VPN

Raspberry Pi 3を購入したので、
初期設定、セキュリティ設定、VPNサーバー立ち上げまでの流れを書いてみます。
基本的にWindows上で操作しますが、一部だけRaspberry Pi 3で操作します。

1)Raspbian Jessie with PIXELのダウンロード

https://www.raspberrypi.org/downloads/raspbian/

Version: April 2017
Release date: 2017-04-10
Kernel version: 4.4

これを落とした。

2)Win32 Disk Imagerのダウンロード

https://sourceforge.net/projects/win32diskimager/files/Archive/

Win32DiskImager-1.0.0-binary.zip

これを落とした。

3)SDカードへの書き込み(Transcend microSDHCカード 16GB Class10 UHS-I対応 TS16GUSDU1P)

Writeで書き込む。

a

4)USBマウスとキーボード、HDMIケーブルでモニタを取り付けた上で Raspberryの設定で以下を設定(Raspberry Pi 3で作業)

Raspberry Pi 3にSDカードを装着し、起動してから以下を設定
これらはGUIのraspberry pi configurationから変更できる

・ホスト名変更(任意)
・SSHの有効化
・ロケール、タイムゾーン、キーボード、無線LANを日本に設定

※なお、モニタやキーボードを接続する事が難しい場合は以下の方法もあります。

PCにマウントしたSDカードのBOOTドライブのルートに、
0kbyte ssh というファイルを置く。
次にLANケーブルをつないで起動する。
これで ssh を有効にした状態で起動できます。

ただしDHCPで親機からIPアドレスが割り振られるので、
割り当てられたIPアドレスがわからないので、
意図的にわかりやすいIPアドレスを割り当てるには、
親機のルーターの電源を切り、
Rasberry Pi 3だけをつなげた状態でルーターの電源をいれます。

すると 192.168.x.2 のように、DHCPサーバーの最初のアドレスが振られるので、
それでIPアドレスを知るという方法もあります。

5)IPアドレスの固定化(Raspberry Pi 3で作業)

ターミナルを開き以下の設定を最下段に追加(xの所は自分の環境にあわせて設定)

$ sudo nano /etc/dhcpcd.conf

----------------------------------------
# Example static IP configuration:
#interface eth0
#static ip_address=192.168.0.10/24
#static ip6_address=fd51:42f8:caae:d92e::ff/64
#static routers=192.168.0.1
#static domain_name_servers=192.168.0.1 8.8.8.8 fd51:42f8:caae:d92e::1

# It is possible to fall back to a static IP if DHCP fails:
# define static profile
#profile static_eth0
#static ip_address=192.168.1.23/24
#static routers=192.168.1.1
#static domain_name_servers=192.168.1.1

# fallback to static profile on eth0
#interface eth0
#fallback static_eth0

interface eth0
static ip_address=192.168.x.x/24
static routers=192.168.x.x
static domain_name_servers=192.168.x.x
----------------------------------------

$ sudo reboot

6)Tera Termのダウンロード

https://ja.osdn.net/projects/ttssh2/

zip版の最新版を落とした。

7)Tera TermでSSH接続

192.168.xx.xx に接続

ユーザ名 pi
パスワード raspberry

8)pi / rootのパスワードを設定

$ sudo passwd pi
$ sudo passwd root

9)Swap廃止、ramdisk構築(ramdiskは64mb)

$ sudo swapoff --all
$ sudo apt-get remove dphys-swapfile
$ sudo nano /etc/fstab

----------------------------------------
# a swapfile is not a swap partition, no line here
#   use  dphys-swapfile swap[on|off]  for that
tmpfs    /tmp    tmpfs    defaults,size=64m,noatime,mode=1777 0 0
tmpfs    /var/tmp    tmpfs    defaults,size=64m,noatime,mode=1777 0 0
----------------------------------------

$ sudo reboot

10)アプリのインストール
リモートデスクトップと、ファイアウォールを入れた。

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install tightvncserver //必要がなければインストール不要
$ sudo apt-get install xrdp //必要がなければインストール不要
$ sudo apt-get install ufw
$ sudo reboot

11)xrdp(リモートデスクトップ)の初期設定(リモートデスクトップが不要なら作業不要)


$ cd /etc/xrdp/
$ sudo wget http://w.vmeta.jp/temp/km-0411.ini
$ sudo ln -s km-0411.ini km-e0010411.ini
$ sudo ln -s km-0411.ini km-e0200411.ini
$ sudo ln -s km-0411.ini km-e0210411.ini
$ sudo service xrdp restart

12)ファイアウォールの初期設定


$ sudo ufw disable
$ sudo ufw default deny
$ sudo ufw allow from 192.168.x.0/24
$ sudo ufw enable

※ローカル接続のみ許可しそれ以外の外部接続をすべて拒否に。

13)ログファイルを最低限しか作成しないように変更

$ sudo nano /etc/rsyslog.conf
※auth.logとsyslog以外は全てコメントアウト
----------------------------------------
###############
#### RULES ####
###############

#
# First some standard log files.  Log by facility.
#
auth,authpriv.*                 /var/log/auth.log
*.*;auth,authpriv.none          -/var/log/syslog
#cron.*                         /var/log/cron.log
#daemon.*                       -/var/log/daemon.log
#kern.*                         -/var/log/kern.log
#lpr.*                          -/var/log/lpr.log
#mail.*                         -/var/log/mail.log
#user.*                         -/var/log/user.log

#
# Logging for the mail system.  Split it up so that
# it is easy to write scripts to parse these files.
#
#mail.info                      -/var/log/mail.info
#mail.warn                      -/var/log/mail.warn
#mail.err                       /var/log/mail.err

#
# Some "catch-all" log files.
#
#*.=debug;\\
#       auth,authpriv.none;\\
#       news.none;mail.none     -/var/log/debug
#*.=info;*.=notice;*.=warn;\\
#       auth,authpriv.none;\\
#       cron,daemon.none;\\
#       mail,news.none          -/var/log/messages

#
# Emergencies are sent to everybody logged in.
#
#*.emerg                         :omusrmsg:*
----------------------------------------

14)1日1回再起動をし、更に週に1回OSを自動アップデートするように変更

$ sudo crontab -e

----------------------------------------
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command
0 5 * * * /sbin/reboot
0 7 * * 1 sudo apt-get update && sudo apt-get upgrade -y
----------------------------------------

例は毎日5時に再起動。更に毎週月曜日7時にアップデートを実施する。

15)日本時間を基準とし、更に自動的に時刻あわせするように変更

$ sudo apt install ntp
$ sudo timedatectl set-timezone Asia/Tokyo
$ sudo nano /etc/ntp.conf

----------------------------------------
# pool.ntp.org maps to about 1000 low-stratum NTP servers.  Your server will
# pick a different set every time it starts up.  Please consider joining the
# pool: <http://www.pool.ntp.org/join.html>
#pool 0.debian.pool.ntp.org iburst
#pool 1.debian.pool.ntp.org iburst
#pool 2.debian.pool.ntp.org iburst
#pool 3.debian.pool.ntp.org iburst
pool ntp.nict.jp iburst
----------------------------------------

$ sudo service ntp restart

==== ここまでで基本的な初期設定完了 ===

==== 以下は以前作業した際の備忘録  ==== 

<softetherを使いvpnサーバーを立ち上げる方法>

16)ファイアウォールの追加設定

※設定方針
外部VPN用=500/udp 4500/udpを解放し、
内部SoftEtherクライアント用=443/tcpを解放します。
つまり 500/udp 4500/udp に穴をあける事になります。

L2TP/IPsecでの接続を前提とし、
L2TP/IPsecのセキュリティ管理(SoftEtherの設定)を強化する事で
セキュリティ対策を行います。

$ sudo ufw disable
$ sudo ufw allow 500/udp
$ sudo ufw allow 4500/udp
$ sudo ufw allow from 192.168.x.0/24 to any port 443 proto tcp
$ sudo ufw enable

17)SoftEther VPN Serverのインストール

SoftEther VPN Server (Ver 4.20, Build 9608, rtm) を入れる事にした。
※ 現在はもっと新しいものが出ていると思われますので適宜置き換えて作業ください。

$ su-

# wget http://jp.softether-download.com/files/softether/v4.20-9608-rtm-2016.04.17-tree/Linux/SoftEther_VPN_Server/32bit_-_ARM_EABI/softether-vpnserver-v4.20-9608-rtm-2016.04.17-linux-arm_eabi-32bit.tar.gz

# tar zxvf softether-vpnserver-v4.20-9608-rtm-2016.04.17-linux-arm_eabi-32bit.tar.gz

# cd vpnserver
# make
# cd ../
# mv vpnserver /usr/local/
# cd /usr/local/vpnserver
# chmod 600 *
# chmod 700 vpn*

起動スクリプトを作成する

# nano /etc/init.d/vpnserver

----------------------------------------
#!/bin/sh
### BEGIN INIT INFO
# Provides:                 vpnserver
# Required-Start:           $local_fs $network
# Required-Stop:            $local_fs $network
# Default-Start:            2 3 4 5
# Default-Stop:             0 1 6
# Short-Description:        SoftEther VPN 4.20 RTM
# Description:              Start vpnserver daemon SoftEther VPN 4.20 Server
### END INIT INFO

DAEMON=/usr/local/vpnserver/vpnserver
LOCK=/var/lock/vpnserver

. /lib/lsb/init-functions
test -x $DAEMON || exit 0

case "$1" in
start)
sleep 3
log_daemon_msg "Starting SoftEther VPN 4.20 Server" "vpnserver"
$DAEMON start >/dev/null 2>&1
touch $LOCK
log_end_msg 0
sleep 3

# SoftEther VPNで追加した仮想tapデバイス名を調べる
tap=`/sbin/ifconfig -a| awk '$1 ~ /^tap/ {print $1}'`
/sbin/brctl addif br0 $tap
;;

stop)
log_daemon_msg "Stopping SoftEther VPN 4.20 Server" "vpnserver"
$DAEMON stop >/dev/null 2>&1
rm $LOCK
log_end_msg 0
sleep 2
;;

restart)
$DAEMON stop
sleep 2

$DAEMON start
sleep 5
# SoftEther VPNで追加した仮想tapデバイス名を調べる
tap=`/sbin/ifconfig -a| awk '$1 ~ /^tap/ {print $1}'`
/sbin/brctl addif br0 $tap
;;

status)
    if [ -e $LOCK ]
    then
        echo "vpnserver is running."
    else
        echo "vpnserver is not running."
    fi
;;
*)

echo "Usage: $0 {start|stop|restart|status}"
exit 1
esac
exit 0
----------------------------------------

# chmod +x /etc/init.d/vpnserver
# apt-get -y install chkconfig
# chkconfig --add vpnserver
# reboot

18)SoftEtherの初期設定

※設定方針
これ以後の作業はWindowsマシンのクライアントアプリ上で作業をします。
具体的な作業はリンク先URL参照下さい。(リンクは貼っていません)

http://俺の技術メモ.net/raspberry-pi2-vpnserver-part2/

このURLを読み進めていくと、「本番設定」という項目と、
「起動スクリプトを作り直す」という項目が出てきますが、
この2つの項目の作業は、仮想HUBを作っていないため作業不要です。

※当方、ネット環境をv6プラス環境に移行してしまったため、
IPv4でのポート開放などが行えなくなったため、
SoftEtherでのVPN構築は不可となってしまいました。
そのため、今となってはこの作業で正しいかどうかの検証もできません…。


==== ここまででは以前作業した際の備忘録は終わり  ==== 

==== さらに以下は余談です。 ===

本体の設定方法

IMG_0337

こんな感じで背面の熱を放熱しやすい向きに設置すると良いかと。

vcgencmd measure_temp

このコマンドでCPU温度を見ることができる。
ラズバイ3のCPUは最大85度まで動く模様。
我が家はケース装着、自然冷却で60度~67度の間をウロウロ。

<2017/6/21追記>
ケースファンを追加した。
見た目は格好悪いですが、ケースの横に紐でくくりつけて運用中。

IMG_0342

Scythe AS-71G2 [USB変換ケーブル]
オウルテック Owltech FANGuard-M8(B)/II [ファンガード 8cm ブラック]
オウルテック Owltech SF8-S2 [ケースファン 1300RPM 80mm角 25mm厚 リブ無し]


この3点セットです。最大10dbと超静音でノイズは全くきにならず。
これを常時まわしてあげると、
48~49度で飽和し-15度位さがったので十分かと!
これで電源を入れっぱなしでも熱暴走リスクはないと思います。

それと最後に少しだけ。

セキュリティ対策で"pi"という初期ユーザ名を別の名前に変更したり、
sshのポートを22番以外に変更する方もいるようですが、
メンテナンス性に影響がでるので今回は行っていません。

またSDカードの寿命対策で、swapを止めたり、
/tmp や /var/tmp のRAMDISK化はしましたが、
アプリによって細かな設定変更や、
起動時にRAMDISKを構成するスクリプトの記載が必要になるため、
/var/log の RAMDISK化はトラブル防止で行っていません。

そもそもSDカードは安価なものはTLCが多く、
1000回書き換えすると寿命を迎えるとありますが、
ここで言う1000回というのは、SDカード上の全く同じ場所・同じ領域を、
上書きで延々1000回書き換えたら壊れるかも?という意味を示します。

通常はSDカードは同じ場所に延々書き込みしないように、
書き込みする場所をうまくローテーションする
ウェアレベリング機能という仕組みが組み込まれているので、
1000回リブートしたらSDカードが壊れてしまうという事はありません。

仮に壊れて起動できなくなっても再構築はさほど難しくありませんので、
その時に考えればいいかな・・・と、笑
記事検索
最新コメント
アーカイブ