個人情報保護方針 お支払いについて お問い合わせ |
Rock Compute Module CM3へのUbuntu20.04 LTEのインストールRaspberry Pi Compute Module 4は人気ですが品薄状態がつづいています。ここでは代替として Radxa社 https://wiki.radxa.com/Rock/ja_JPのRock Compute Module3が使用できます。CM3は RS-ONLINE で購入できるようです。CM3はRaspberryPiCM4と互換の2つのコネクタを持ち、さらに拡張機能として3つ目のコネクタを備えていいます。3つ目のコネクタを使用するとUSB3.0やSATA等のRock3独自の拡張された機能を使用できますが、このコネクタは使用しなくてもCM4と同様の機能は動作します。ここではRaspberry Pi CM4用のCM4 IO Boardを用いてRock CM3を動作させてみます。 eMMCへのインストール SSHとVNCの設定 TigerVNCの設定 (1.10以前の場合) TigerVNCの設定 (1.11以降の場合) PCIExpressの設定 OSイメージの作成(システムのバックアップ) CPU温度の表示 Qt5.15/QtDesignerのインストール UNEXPECTED INCONSISTENCYへの対処方法 注) 現在マイクロSDカードからの起動ができていません。調査中です。 |
マイクロSDカードへのインストールeMMCへのインストールはこちら1) OSイメージをダウンロードする Redxa社のダウンロードサイト https://wiki.radxa.com/Rock3/downloads からOSのイメージをダウンロードします。Radxa CM3 RASPCM4IOを選択します 現時点ではBullseysとUbuntu20.04 server (CUI)が選べるようです。 ubuntuのimgファイルをダウンロードします。GUI化は後で行います。 サイトを見ると現時点ではdtbファイルにパッチを当てる必要があるようです。この作業は後に行います。 2) フラッシュツール Etcher のダウンロード Rexda社のサイトからOSをマイクロSDカードに書き込むフラッシュツールEtcher のサイトに移動します。 使用しているPCのOSに応じてインストーラーを選択します。ここではWindows10なので、ETCHER FOR WINDOWS (X86|X64) (INSTALLER) を選択します。 3) Etcherのインストール balenaEtcher-Setup-1.18.8.exeをダブルクリックして、Etcherをインストールします。 4) EtcherによるマイクロSDカードへのOSイメージのインストール Etcherを起動し、1)でダウンロードしたOSイメージ radxa-cm3-io-debian-bullseye-xfce4-arm64-20221101-0302-gpt.img.xz を選択、PCに挿入したSDカードを選択しOSイメージを書き込みます。 OSイメージを書き込んだマイクロSDカードをCM4 IO ボードに挿入して電源を投入します。 参考資料: https://wiki.radxa.com/Rock/ja_JP 参考資料: https://wiki.radxa.com/Rock3/CM3/raspcm4io/getting_started 参考資料: https://wiki.radxa.com/Rock3/installusb-install-radxa-cm3-io |
CM3のeMMCへのインストールマイクロSDカードへのインストールはこちらRedxa社のダウンロードサイト https://wiki.radxa.com/Rock3/downloads からOSのイメージをダウンロードします。Radxa CM3 RASPCM4IOを選択します 現時点ではBullseysとUbuntu20.04 server (CUI)が選べるようです。 ubuntuのimgファイルをダウンロードします。 2) RKDevToolのインストール RKDevTool https://dl.radxa.com/tools/windows/RKDevTool_Release_v2.86.zip をダウンロードして任意のフォルダに展開します。RKDevToolはインストーラはなく、展開したフォルダ内のRKDevTool.exeをダブルクリックするだけで起動します。ショートカットを作っておくと便利でしょう。 RKDevTool v2.86はデフォルトで中国語で起動してしまうようです。config.iniを変更して英語で起動するようにします。Kinds=1に変更、中国語のLang1の設定を削除し、英語設定のLang2*をLang1に変更します。 [Language] Kinds=1 Selected=1 LangPath=Language\ Lang1File=English.ini Lang1FontName=Arial Lang1FontSize=9 3) RKDriverAssistantのインストール 次いでRKDriverAssistant.zip https://dl.radxa.com/tools/windows/DriverAssitant_v5.0.zipをダウンロードしてこれも任意のフォルダに展開し、DriverInstall.exeを実行します。 Install Driver ボタンを押してドライバをインストールします。 これでOTG経由でeMMCが見れるようになります。 4) img.xzファイルの展開 現在のところ、RKDevToolでは残念ながら.img.xzで圧縮されたファイルが扱えないようです。ですので、OSイメージファイルradxa-cm3-io-debian-bullseye-xfce4-arm64-20221101-0302-gpt.img.xz をあらかじめradxa-cm3-io-debian-bullseye-xfce4-arm64-20221101-0302-gpt.img に展開しておく必要があります。Windows上での圧縮の解除はWinzipや7zipで行うことができます。ここでは7-zipを使用することにします。7-zipのウェブサイト https://7-zip.opensource.jp/ から64bit版(使用しているWindowsが32bitなら32bit版)をダウンロードします。 radxa-cm3-io-debian-bullseye-xfce4-arm64-20221101-0302-gpt.img.xz を7-zipで開き、展開します。 5) OSイメージのeMMCへのダウンロード Radxa社のサイトからダウンローダをrk356x_spl_loader_ddr1056_v1.10.111.bin をダウンロードします。 https://dl.radxa.com/rock3/images/loader/rock-3a/ 5) OSイメージのeMMCへの書き込み USBケーブルでPCとCM4 IO BoardのUSB OTGコネクタを接続します。CM3のeMMCに何も書かれていない状態でしたら、そのままCM3/CM4 IO Boardの電源を入れます。eMMCに何か書かれている場合にはCM3ボード上にあるスイッチを押しながら電源を投入します。その状態で1) でインストールしたRKDevToolを起動します。Found One MASKROM Device と表示されていることを確認してください。デフォルトで適当な仮のパーティションイメージが設定されています。 右クリック->"Del Item"で、一旦削除し、3)、4)で作成したファイルを右クリック->"Add Item"で追加します。次回も同じ設定が必要な場合には右クリック->"Export Config"で設定を保存できます。ここでは以下のファイルを指定しました。 C:\MyProjects\GroveDesign\RaspberryPi4\rock3\rk356x_spl_loader_ddr1056_v1.10.111.bin C:\MyProjects\GroveDesign\RaspberryPi4\rock3\radxa-cm3-io-ubuntu-focal-server-arm64-20221101-0254-gpt.img runボタンを押して、書き込みが終わるのを待ちます。途中USBデバイスが切り離されたり、再接続するような音がしますが、じっと待ちます。 Download image OKが表示されれば書込み終了です。HDMIに接続したディスプリにログイン画面が表示されています。 6) eMMCの消去 他のOSをインストールしたいなどなんらかの理由で、eMMCを消去したい場合にもRKDevToolを使用します。Advance Functionタブを選択、bootにrk356x_spl_loader_ddr1056_v1.10.111.binを指定して、Downloadボタンをクリックします。 次にEraseAllボタンを押してeMMCを消去します。 最後にReset Deviceボタンを押して再起動します。eMMCは消去されていますので、起動しません。 参考資料: https://wiki.radxa.com/Rock3/installusb-install-radxa-cm3-io |
SSHとVNC(Virtual Network Computing)の設定注) ここではTightVNCの設定を行っていますが、TightVNC + xfce4 の組み合わせにはウインドウのタイトルバーが表示されないという問題があるようです。代替案としてTigerVNCをインストールします。TigerVNCのインストール方法は こちら 1) OSを最新の状態に まず、IPアドレスはDHCPによって与えられていますので、ルーターなどHDCPサーバが動いているデバイスで、一番最近に付与されたIPアドレスを調べます。コマンドプロンプトから ssh rock@[IPアドレス] と入力し、ログインします。パスワードの初期値はrockです。 aptコマンドでインストールをしたいのですが、公開鍵が古くなっているようです。先に公開鍵をインストールします。 source /etc/os-release export DISTRO="${VERSION_CODENAME}-stable" wget -O - apt.radxa.com/$DISTRO/public.key | sudo apt-key add - OSを最新の状態にします。 sudo apt update sudo apt upgrade 2) DTBの書き換え CM4 IO boardを使用している場合にはDTBを書き換えます。Radza CM3 IO boardを使用している場合には変更の必要はありません $ cd /boot/dtbs/$(uname -r)/rockchip/ $ sudo mv rk3566-radxa-cm3-io.dtb rk3566-radxa-cm3-io.dtb.bak $ sudo cp rk3566-radxa-cm3-rpi-cm4-io.dtb rk3566-radxa-cm3-io.dtb $ sudo reboot 3) GUI環境のインストール Ubuntu 20.04 serverにはGUI環境がインストールされていませんので、インストールします。 $ sudo apt-get install ubuntu-desktop $ sudo reboot 4) VNCの設定 SSHではCUIで各種設定が可能ですが、GUIでの設定も必要になる場合があります。VNCを設定して、他のPCからGUIアクセスできるようにします。 xfce4-goodiesをインストールして、Xfceデスクトップ環境を構築します。(Ubuntu DesktopはVNCと相性が悪いようです。VNCはXFCEを使用します。) 次いでTightVNC server、dbus-x11をインストールします。 $ sudo apt update $ sudo apt-get install xfonts-base $ sudo apt-get install xfonts-100dpi $ sudo apt-get install xfonts-75dpi $ sudo apt install xfce4 xfce4-goodies $ sudo apt upgrade $ sudo apt install tightvncserver $ sudo apt install dbus-x11 $ sudo reboot インストール時にディスプレイマネージャが1.gdmか2.lightdmかを選択します。ディスプレイマネージャとはOS起動後のログイン画面のことです。あとで変更したい場合は $ sudo dpkg-reconfigure gdm3 または $ sudo dpkg-reconfigure lightdm で変更可能です。 インストールしたらvncserverと入力し一旦起動します。起動するとパスワードを聞かれますので設定します。vncserver -kill :1で一旦display 1を停止します。~/.vnc/xstartupの初期値を保存して編集します。xstartupはVNC サーバーを起動または再起動するたびに自動的に実行されるものです。 $ vncserver Password: Verify: Would you like to enter a view-only password (y/n)? n xauth: file /home/sammy/.Xauthority does not exist New 'X' desktop is your_hostname:1 Creating default startup script /home/sammy/.vnc/xstartup Starting applications specified in /home/sammy/.vnc/xstartup Log file is /home/sammy/.vnc/your_hostname:1.log $ vncserver -kill :1 Killing Xtightvnc process ID 17648 $ mv ~/.vnc/xstartup ~/.vnc/xstartup.bak $ vi ~/.vnc/xstartup #!/bin/bash xrdb $HOME/.Xresources startxfce4 & $ sudo chmod +x ~/.vnc/xstartup $ vncserver 再びvncserverを起動すると、PCにインストールしたVNC Viewerからアクセスできるようになります。Ultra VNC, Read VNC 等が使用できます。お好きなViewerを使用してください。 4) VNC Serverをサービスとして動作 3)ではvncserverをSSHでログインして実行しましたが、これだとSSHセッションを抜けてしまうと使えなくなりますし、そもそもVNC Viewerでログインしたいのでこの方法では不便です。VNCServerをサービスとして使用できるようにします。 /etc/systemd/system/vncserver@.service という名前のファイルを作成します。 $ sudo vi /etc/systemd/system/vncserver@.service ファイルの中身は以下のようにします。 [Unit] Description=Start TightVNC server at startup After=syslog.target network.target [Service] Type=forking User=rock Group=rock WorkingDirectory=/home/rock PIDFile=/home/rock/.vnc/%H:%i.pid ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%i ExecStop=/usr/bin/vncserver -kill :%i [Install] WantedBy=multi-user.target 変更内容をシステムに認識させ、有効にします。 $ sudo systemctl daemon-reload $ sudo systemctl enable vncserver@1.service $ sudo systemctl start vncserver@1 $ sudo systemctl status vncserver@1 -l --no-pager これで、キーボード、モニタが無くてもネットワークケーブルのみでGUI操作ができるようになりました。SSHでのアクセスをしなくても、VNCで直接GUIログインできます。 参考資料: https://github.com/radxa-build/radxa-cm3-io/releases/tag/20221101-0118 参考資料: https://wiki.radxa.com/RockpiS/ssh 参考資料: https://blog.amedama.jp/entry/ubuntu-2004-install-gui 参考資料: https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-vnc-on-debian-11 参考資料: https://teratail.com/questions/301589 |
TigerVNCの設定 (tigerVNC 1.10以前の場合)注意: TigerVNC 1.11以降では設定方法が変わりました。こちらを参照してください。 1) インストール TightVNCがインストールされている場合にはアンインストールします。 $ sudo apt purge tightvncserver TigerVNCをインストールします。 $ sudo apt install tigervnc-standalone-server 2) VNC Serverをの設定 インストールしたらvncpasswdと入力しVNCでログインする際のパスワードを設定します。~/.vnc/xstartupの初期値を保存して編集します。xstartupはVNC サーバーを起動または再起動するたびに自動的に実行されるものです。 $ vncpasswd Password: Verify: Would you like to enter a view-only password (y/n)? n $ mv ~/.vnc/xstartup ~/.vnc/xstartup.bak $ vi ~/.vnc/xstartup #!/bin/bash xrdb $HOME/.Xresources startxfce4 & $ sudo chmod +x ~/.vnc/xstartup $ vncserver XFCE4ではなく、gnome-desktop(通常のubuntuの画面)にしたい場合には下記のようにします。 $ sudo apt-get install -y tigervnc-common tigervnc-standalone-server tigervnc-xorg-extension $ vi ~/.vnc/xstartup #!/bin/bash [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -x $HOME/.Xresources ] && xrdb $HOME/.Xresources vncconfig -iconix & dbus-launch --exit-with-session gnome-session & VNCサーバーを起動します。 $ vncserver -localhost no VNCクライアントからログイン名 radxa-cm3-io:1でログインします。タイトルバーも表示されていますし、USBストレージ、NVMe SSDもGUIでマウントできます。 3) VNC Serverをサービスとして動作 3)ではvncserverをSSHでログインして実行しましたが、これだとSSHセッションを抜けてしまうと使えなくなりますし、そもそもVNC Viewerでログインしたいのでこの方法では不便です。VNCServerをサービスとして使用できるようにします。 /etc/systemd/system/vncserver@.service という名前のファイルを作成します。 $ sudo vi /etc/systemd/system/vncserver@.service ファイルの中身は以下のようにします。 [Unit] Description=Start TightVNC server at startup After=syslog.target network.target [Service] Type=simple User=rock Group=rock WorkingDirectory=/home/rock PIDFile=/home/rock/.vnc/%H:%i.pid ExecStartPre=/usr/bin/vncserver -kill :%i > /dev/null 2>&1 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%i -localhost no -MaxIdleTime=0 -SecurityTypes VncAuth ExecStop=/usr/bin/vncserver -kill :%i [Install] WantedBy=multi-user.target 変更内容をシステムに認識させ、有効にします。 $ sudo systemctl daemon-reload $ sudo systemctl enable vncserver@1.service $ sudo systemctl start vncserver@1.service $ sudo systemctl status vncserver@1.service -l --no-pager これで、キーボード、モニタが無くてもネットワークケーブルのみでGUI操作ができるようになりました。SSHでのアクセスをしなくても、VNCで直接GUIログインできます。 Polikitが正しく動作しないと、ネットワークの設定もいじれません。/etc/NetworkManager/conf.d/any-user.confファイルを作成し、以下の2行を設定をすることでpolikitなしで、パスワードの入力が促されます。 $ vi /etc/NetworkManager/conf.d/any-user.conf [main] auth-polikit=false 注1) VNCをサービスとして起動した場合にpolkitが正しく動作しないという問題が報告されています。VNCを介してXFCEを起動した場合に、USBストレージなどのアイコンからマウントしようとしても、パスワードの入力画面が表示されず、結果マウントできません。ターミナルからmountコマンドでマウントすればマウントできます。また、VNCではなくキーボードとモニタを接続して通常のログインをしてUbuntu Desktopから起動した場合には問題なくUSBストレージは自動マウントされます。この状態でVNCでログインすると、USBストレージはマウントされています。 注2) VNCクライアントが頻繁に切断されることがあります。この場合、vnc server起動時に-MaxIdleTime=0を指定することによって回避できるようです。 注3) pokitが正しく動作しない問題は vncserver を起動するときに -SecurityTypes VncAuth オプションを指定すると解決するようです。 参考資料: http://serverarekore.blogspot.com/2020/05/ubuntu-2004tigervnc.html |
TigerVNCの設定 (tigerVNC 1.11以前の場合)バージョンに寄らず共通の設定 (:2 の部分はセッション番号)
# # This file assigns users to specific VNC display numbers. # The syntax is # # :2=andrew # :3=lisa :2=mori :3=user
securitytypes=vncauth,tlsvnc geometry=1366x768 alwaysshared 注意:同じユーザーで、VNC とキーボード+モニタの両方からgnome-desktopでログインしようとすると両方のセッションが破壊される。もしやってしまったら、再起動で復活する。 |
PCIExpressの設定1) DTBの書き換え CM4 IO boardを使用している場合にはDTBを書き換えます。すでに変更している場合には不要です。Radza CM3 IO boardを使用している場合には変更の必要はありません。 $ cd /boot/dtbs/$(uname -r)/rockchip/ $ sudo mv rk3566-radxa-cm3-io.dtb rk3566-radxa-cm3-io.dtb.bak $ sudo cp rk3566-radxa-cm3-rpi-cm4-io.dtb rk3566-radxa-cm3-io.dtb $ sudo reboot 2) config.datの書き換え Ubuntuの場合、/boot/config.txtを変更しなくてもPCIeが認識されているようです。。念のため、 /boot/config.datを開いて、下記の1行を追加します。 dtoverlay=radxa-cm3-io-pcie2x1 UbuntuではPCIe上に接続されたNVMe SSDを認識しているようですが、GUIで右クリックしてマウントしようとするとエラーになるようです。通常通りsudo mount /dev/mvme0n1 /mnt/nvme のように手動でマウントすれば問題なく使用できるようです。 NVMeのフォーマットや読み書き速度のテストついては bullseyeでのNVMeフォーマット以下を参照ください。 PCIe x1 のネットワークカードも見えています。 参考資料: https://scrapbox.io/dojineko/nvme-cliを使ってNVMe_SSDを初期化する 参考資料: https://blog.amedama.jp/entry/nvme-secure-erase 参考資料: https://qiita.com/sasadango/items/fcb657d3b4bbd39c3497 参考資料: https://blog.amedama.jp/entry/nvme-secure-erase |
OSイメージの作成(システムのバックアップ)必要なもの ・eMMCの容量以上(32GBなら64GB以上のストレージ NVMeメモリやUSBフラッシュメモリ等) まずはストレージをマウントします。ここではPCIeスロットに挿入した。NVMe SSDを使用します。dfコマンドで/mntがマウントされていることを確認します。 $ sudo mkdir /mnt/nvme $ sudo mount /dev/nvme0n1 /mnt/nvme $ sudo fdisk -l eMMCのデバイス名を確認します。/dev/mmcmblk0 のようです $ df -T $ ls /dev/mmcblk* ddコマンドで /dev/mmcmblk0 全体をimgファイルに書き出します。bsは処理単位で大きくしてあげると速度がずいぶん上がるようです。 $ sudo dd if=/dev/mmcblk0 of=/mnt/radxa-cm3-io-ubuntu20.04-arm64-[日付].img bs=256M [sudo] password for rock 116+1 recored in 116+1 recored out 31268536320 bytes (31 GB, 29 GiB) copied, 329.313 s, 95.0 MB/s $ xzコマンドで圧縮します。-T4は4スレッドで高速に処理する場合に指定します。SOCが高温になりますので。ヒートシンク等の放熱処理してください。 $ cd /mnt/nvme" $ ls $ sudo xz -k -T4 radxa-cm3-io-ubuntu20.04-arm64-[日付].img $ ls -l WindowsでFAT32フォーマットにてフォーマット済みのUSBフラッシュメモリをマウントしてコピーします。 $ sudo mount -o iocharset=utf8 -t vfat /dev/sda1 /mnt/usbfm $ ls /mnt/usbfm $ sudo cp radxa-cm3-io-debian_bullseye-xfce4-arm64-[日付].img /mnt/usbfm $ /mnt/usbfm 新しく作成したimgファイルを用いて、eMMCに再度書き込めば、バックアップした状態に復元できます。今回は64GB以上のUSBフラッシュメモリが無かったので、圧縮してからコピーしましたが、圧縮にかなりの時間を要しました。32GB以上の空きがあるUSBストレージを用いれば直接非圧縮のまま保存して、より高速なPCで圧縮したほうが早いです。この場合、USBストレージをNTFSでフォーマットしてください。FAT32ですと4GB以上のサイズのファイルが作成できずエラーになります。 作成したimgファイルをRKDevToolでeMMCに書き込んでみました。ファイルサイズが大きいためか、書込み終了まで到達できません。十分時間が経ってから電源を再投入したところ、問題なく書き込んだOSイメージで起動できました。おそらくimgファイルを作成するときに正しいセクタサイズを指定する必要があったと思います。次回試してみます。 参考資料: https://isleofhoso.com/linux-dd/ 参考資料: http://tech.clickyourstyle.com/articles/126 参考資料: https://pcvogel.sarakura.net/2018/09/21/31873 参考資料: https://qiita.com/hana_shin/items/df1cf4dd67d1dd19d44a |
CPU温度の表示以下のコマンドでCPUの0.001度単位の温度が表示されます。 $ cat /sys/class/thermal/thermal_zone*/temp 63333 62777 18800 また、Hardinfo等のGUIアプリでも温度は確認できます。 $ sudo apt install hardinfo $ hardinfo & |
|
なお、CM3にヒートシンクをつける前は平常時63度ぐらいだったのが、ヒートシンクをつけることで46度ぐらいになりました。4スレッド動作で高負荷をかけても65度程度で収まっているようです。RK3566の動作温度は75度までなので、ファンまでは必要なくても、ヒートシンクはつけたほうが良さそうです。 参考資料: https://qiita.com/koara-local/items/1fac13704123717f5cc8 参考資料: https://news.mynavi.jp/techplus/article/20201229-1613873/ |
Qt5.15/QtDesignerのインストール仮想PC(x64)で行ったQtのインストールをCM3のUbuntuでも行います。手順は 仮想PCでのQtインストール を参照ください。 sudo apt-get install build-essential sudo apt-get install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools sudo apt-get install qtcreator sudo apt-get install qtmultimedia5-dev libqt5multimediawidgets5 sudo apt-get install libqt5multimedia5-plugins sudo apt-get install `apt-cache search 5-examples | grep qt | grep example | awk '{print $1 }' | xargs` sudo apt-get install `apt-cache search 5-doc | grep "^qt" | awk '{print $1}' | xargs` Qt Creatorを起動して、仮想PCのx86環境で動作確認していたプロジェクトをビルドします。 ビルドしたRefAppQtからdpkgを生成し、インストールします。 sudo dpkg -i refappqt_0.2.1.0_arm64.deb アンインストールしたい場合には以下のようにします。 sudo dpkg -r refappqt |
UNEXPECTED INCONSISTENCYへの対処方法eMMCを使用しているとファイルシステムの不整合が起きることがあります。経験上rebootやshutdown後に起きることが多いようです。起動時に、UNEXPECTED INCONSISTENCY; RUN fsck MANUALLYと表示されるのですが、自動的にリブートしてしまうので、fsckコマンドを手動で実行することができません。ですので、まず正常な状態で自動リブートしないように設定します。(現在正常に起動しない場合には、バックアップからOSイメージをeMMCに書き直してください) sudo vi /boot/config.txt 以下の行を cmdline: panic=10 rootwait rw init=/sbin/init rootfstype=exp4 下記のように書き換えます cmdline: rootwait rw init=/sbin/init rootfstype=exp4 自動的にリブートしなくなりますので、以下のようにエラーが表示されたパーティションを指定してコマンドを入力し、ファイルシステムを修正します。途中、修正するかどうか聞かれますので、yまたはa(すべてy)を入力します。 fsck /dev/mmcblk0p2 補足:fsckを実行する方法として以下の方法でbootすることを試みましたが、Rock CM3(eMMC) + CM4 I/O boardの組み合わせでは動作しませんでした。 2020年ごろからRaspberryPi 4BではUSBからOS起動できるようですが、現時点でのRockCM3のブートローダーでは対応していないようです。 参考資料: https://atmarkit.itmedia.co.jp/flinux/rensai/linuxtips/974fsck.html |
|