- 投稿日:2021-07-15T22:22:24+09:00
VirtualBoxにSECCON版のTsurugi Linuxをインストールする
Tsurugi Linuxはカッコいいだけじゃない Tsurugi Linux Your DFIR Linux distribution SECCON版のTsurugi Linuxをダウンロードする SECCON版ISO VirtualBoxに空の仮想マシンを用意する 仮想マシン-新規で空の仮想マシンを作る ストレージは(とりあえず)80GBに設定 *画像は仮想マシン作成後のもの メモリは(とりあえず)4GBに設定 *画像は仮想マシン作成後のもの 仮想マシンを起動する 起動する デバイス-光学ドライブからisoファイルを選択 ターミナルでエラーが表示されたらデバイス-光学ドライブでダウンロードしたisoファイル(tsurugi_seccon_2019.iso)を選択する 起動しない場合は仮想マシン-リセットで再起動する 起動した ↓ *画像はインストール後のもの インストールする デスクトップにあるInstall TSURUGI 2019.1からインストーラーを起動してインストール VirtualBox Guest Additionsをインストールする VirtualBox Guest Additionsをダウンロード VirtualBox Guest Additions *画像は2021/7/15現在最新版のもの クリップボードとドラッグ&ドロップは双方向に設定 共有フォルダーは自動マウント、永続化で設定 Guest Additionsをインストールする Guest Additionsイメージの挿入でマウントする インストーラー起動でインストール後共有フォルダー用のユーザーに追加する bash sudo /media/(user)/VBox_GAs_6.1.22/autorun.sh sudo adduser (user) vboxsf 日本語環境をインストールする bash sudo apt update sudo apt purge locales sudo apt purge language-pack-ja sudo apt install locales sudo apt install language-pack-ja sudo locale-gen echo "export LANG=ja_JP.UTF-8" >> .bashrc 再起動後日本語入力(半/全で切り替え)とコピペとD&Dと共有フォルダーなどひととおり使えるようになる(はず、いろいろとあってできないこともある)。 おまけ ターミナルのフォントはLiberation Mono Bold 10が快適だった radare2を最新にする インストール後のradare2のバージョン $ radare2 -v radare2 4.1.0-git 24455 @ linux-x86-64 git.4.0.0-235-g982be50 commit: 982be504999364c966d339c4c29f20da80128e14 build: 2019-12-17__10:29:05 アップデートしてみる(失敗、下がった) $ sudo apt update $ sudo apt install radare2 $ radare2 -v radare2 0.9.6 @ linux-little-x86-64 git.0.9.6 commit: 1: build: 2014-04-10 これも失敗 $ pip install r2env Collecting r2env Downloading https://files.pythonhosted.org/packages/4d/26/b881c957004c87ed53799d1703d134f9910e2176964c2de9fc0649ad66ee/r2env-0.3.5.tar.gz ERROR: Command errored out with exit status 1: … gitでやる、なんとか成功 $ sudo git clone https://github.com/radareorg/radare2 # sudoでは実行ファイル生成でエラーになったのでrootになってインストール $ su - # ダウンロードした最新版のinstall.shを起動 # radare2/sys/install.sh # radare2 -v radare2 5.4.0-git 26457 @ linux-x86-64 git.5.4.0-git commit: e5fcf4a51822d17006885ae3f8a54157c833b32b build: 2021-07-16__11:10:29
- 投稿日:2021-07-15T20:54:15+09:00
Linuxのパーミッションについて
Linuxのパーミッションについて パーミッションとは Linux上のディレクトリやファイルには、所有権が決められておりアクセス権とも言われてます。 ファイルや、ディレクトリ一つ一つに許可属性を付与し、管理をする仕組みを「パーミッション」と言います。 パーミッションについて詳しく解説 パーミションは下記のように、権限・対象ユーザー・表記で決められています。 権限 権限の文字表記 説明 読み込み権限 r 読み取りが可能かどうか 書き込み権限 w 書き込みが可能かどうか 実行権限 x 実行が可能かどうか 権限なし - ユーザーの種類 所有ユーザー 所有グループに所属するユーザー その他のユーザー なし 権限の見方としまして、下記の画像のようになります。 ※ファイルの種別は3つあり「-」はファイル、「d」はディレクトリ、「l」はリンクを表します。 アクセス権は下記のように2進数と8進数でも表すことができる。 記号表記 2進数 8進数 --- 000 0 --x 001 1 -w- 010 2 -wx 011 3 r-- 100 4 r-x 101 5 rw- 110 6 rwx 111 7 とりあえず以上になります。インプットしましたら都度都度更新していきます。
- 投稿日:2021-07-15T19:25:22+09:00
Tera Term 私的おすすめ設定
自分が普段 Tera Term をインストールしたときに必ずやっている初期設定を紹介します。 それぞれ、 危険な機能の無効化 利便性向上 個人的好み のいずれかを目的としたものです。特に「危険な機能の無効化」カテゴリのものは万人にお薦めします。 なおこの記事は Tera Term 4.106 を前提に記載しています。 インストーラーでの設定 追加プラグインを全て有効化する カテゴリ 利便性向上 変更理由 デフォルトでは追加プラグインは「TTXResizeMenu」と「TTXttyrec」しか有効になっていない。しかし個人的には「TTXKanjiMenu」もしばしば使うため。 インストール後の TERATERM.INI のカスタマイズ ConfirmPasteMouseRButton を off から on に変更 カテゴリ 危険な機能の無効化 変更理由 off だと右クリックした瞬間にクリップボードの内容が貼り付けられてしまい、誤操作によって致命的な支障を生むコマンドが投入されてしまう恐れがあるため。これを on にすることで、右クリックしただけでは貼り付けられず、明示的に「貼り付け」をクリックすることで初めて貼り付けられるようになる。 VTFont を「Terminal,0,-19,128」から「MS ゴシック,0,-14,128」に変更 カテゴリ 個人的好み 変更理由 デフォルトのフォントサイズが大きすぎるため。 AutoWinClose を on から off に変更 カテゴリ 危険な機能の無効化 変更理由 on だとセッション切断時に自動的にウィンドウが閉じられてしまい、誤操作や障害で切断された際にそれまでの操作ログを喪失するため。 HistoryList を on から off に変更 カテゴリ 個人的好み 変更理由 on だと接続先リストが自動的に更新され、予め設定していたものが流れてしまうため。 AutoTextCopy を on から off に変更 カテゴリ 危険な機能の無効化 変更理由 on だと範囲選択した瞬間にクリップボードにコピーされてしまい、意図せずクリップボードの内容を喪失してしまうため。 ClearOnResize を on から off に変更 カテゴリ 利便性向上 変更理由 on だとウィンドウサイズ変更時にバッファの内容が消えてしまい不便なため。 IMERelatedCursor を off から on に変更 カテゴリ 利便性向上 変更理由 on の方が IME の状態が分かり易くなるため。 ResizeMenu を以下のように定義 ResizeMenu1= 80, 0 ResizeMenu2=120, 0 ResizeMenu3=160, 0 ResizeMenu4=240, 0 ResizeMenu5= 0, 24 ResizeMenu6= 0, 40 ResizeMenu7= 0, 56 ResizeMenu8= 0, 72 カテゴリ 利便性向上 変更理由 ある程度のウィンドウサイズにさっと変更できると便利なため。
- 投稿日:2021-07-15T18:58:49+09:00
MacからUbuntuに移行する際にやったこと
MacBookにUbuntuをインストールした後にやったこと アプリ編 Chromiumをインストールする sudo apt-get install chromium-browser Seleniumで利用する場合はドライバーも入れる sudo apt-get install chromium-chromedriver Vimエディタをインストールする sudo apt-get install vim Snapedストアを追加する Ubutuストアで配信されていないアプリを入手できます。 Snapedストアに並んだアプリは審査がされているようです。 sudo apt install snapd 通信・セキュリティ編 デフォルトのファイヤーウォールを起動させる Ubuntuにはデフォルトでファイヤーウォールがインストールされており、GUI画面で管理する #起動 sudo ufw enable #停止 sudo ufw disable #更新 sudo ufw reload #状態 sudo ufw status ファイヤーウォール管理するGUIツールをインストール sudo apt -y install gufw 通信をキャプチャするソフトインストール OpenVpnを利用する sudo apt-get install --reinstall network-manager network-manager-gnome network-manager-openvpn network-manager-openvpn-gnome ウィルス検知ソフト EestのUbuntu版をインストール 海外からインストールできます ポートスキャンツール nmapをインストール sudo apt install nmap 自分のマシンをポートスキャンしてみる 不要なポートが開いていた場合はすぐ調べて閉じます。 nmap 127.0.0.1 コマンド履歴を取得 不審なコマンドを実行されていないか確認できます history ログイン履歴履歴を取得 不審なログインされていないか確認できます last lastlog IP6を無効にする #確認する ip -6 a vim /etc/default/grub # GRUB_CMDLINE_LINUX="" # GRUB_CMDLINE_LINUX_DEFAULT #ipv6.disable=1にする GRUB_CMDLINE_LINUX="ipv6.disable=1" GRUB_CMDLINE_LINUX_DEFAULT="maybe-ubiquity ipv6.disable=1" #更新 sudo update-grub # 再起動 sudo reboot #確認する ip -6 a ユーティリティ編 Caps-LockキーをCtrlキーにする sudo apt install gnome-tweaks gnome-tweaks tweaksアプリがインストールされる。起動 - 追加レイアウトオプション 追加レイアウトオプションからCapsLockを無効にできたり、Ctrlに変換できます ファイルエクスプローラーでシステム領域を編集する デフォルトのファイルエクスプローラーはシステム領域は編集できません。 sudo nautilus 起動時にアプリを実行する 一番簡単なのは自動起動時に設定できるアプリがUbuntuにプレインストールされています。 アプリをパスを指定することで自動起動できます 起動時にContrlをdeleteキーにする 上の自動起動アプリを利用しシェルスクリプトを実行する sh #!/bin/sh -e # Contrlをdeleteキーにする xmodmap -e "keycode 37 = Delete NoSymbol Delete" #プリントキャプチャをF12にする xmodmap -e "keycode 96 = Print Execute Print Execute" exit 0 キーコードを調べる xev キーコードの一覧を取得する xmodmap -pke Functionキーを利用できるようにする echo 2 | sudo tee /sys/module/hid_apple/parameters/fnmode Macのキー英数キーとかなキーを使えるようにする Macのキー 英数キー、かなキーをUbuntuで使えるようにする Mozc選択する キー設定の選択 編集ボタンを押す 入力キーを押してソートする Eisuをひらがなに入力切り替えにする Hiragana IMEを無効化にする 動画・画像編 動画コーデックをインストールする ウィンドウズメディア形式やmp4形式を再生できるにようになる。VLCなで再生できるようになる sudo apt install ubuntu-restricted-extras twitterのタイムライン動画を再生する sudo apt install ffmpeg 画像ファイルをサムネイル画像で見れるようにする sudo apt install shotwell Audio編 マイクをディパイスレベルで無効にする Audioディパイスを管理するアプリが立ち上がります。 sudo apt install pavucontrol pavucontrol 開発編 Riderをインストール sudo snap install rider --classic MonoDevelopをインストール sudo apt install apt-transport-https dirmngr sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF echo "deb https://download.mono-project.com/repo/ubuntu vs-bionic main" | sudo tee /etc/apt/sources.list.d/mono-official-vs.list sudo apt update sudo apt-get install monodevelop monodevelop visual sutdio codeをインストール 開発に必要なライブラリ $ sudo apt-get install zsh zsh-dev $ sudo apt-get install curl $ sudo apt-get install make $ sudo apt-get install gcc $ sudo apt-get install g++ $ sudo apt-get install emacs $ sudo apt-get install emacs-goodies-el $ sudo apt-get install git $ sudo apt-get install subversion $ sudo apt-get install zlib1g $ sudo apt-get install libevent-dev $ sudo apt-get install pkg-config $ sudo apt-get install vim
- 投稿日:2021-07-15T18:03:10+09:00
Linuxのtreeコマンドで罫線が文字化けする
現象 TeratermでAmazon Linuxにつなげてtreeコマンド実行したら文字化けした。 対策 --charset=Cオプションをつけたら表示されるようになった。
- 投稿日:2021-07-15T09:56:19+09:00
Linux mdraild のHDD故障時の交換手順
概要 mdraid の構成HDDが壊れたら交換作業を実施しなければならない。 データ領域にかかわる作業なので手順書なしで実施するのは不安。かつ、稀にしか発生しないイベントなので手順を記憶しておくのも難しい。 都度手順を調べるのも面倒なのでここにまとめておく。 なお、同時期に買ったHDDは同時期に故障する可能性がやや高い。 1つのHDDが壊れたと思ったら数日後に2つ目が壊れた、みたいな事象も起こりうるので、普段から監視や予備資材の確保など、故障にそなえておきたい。 たとえばHDDの故障気配を検知するには smartctl が使える。 # smartctl -A /dev/sdx | grep -i error 1 Raw_Read_Error_Rate 0x002f 172 172 051 Pre-fail Always - 1236 7 Seek_Error_Rate 0x002e 200 200 000 Old_age Always - 0 199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 0 200 Multi_Zone_Error_Rate 0x0008 180 180 000 Old_age Offline - 9736 Raw_Read_Error_Rate が 0 より大きいと故障しやすいあるいは故障した状態。 また、 /dev/mdstat も監視しておくのが良い。 具体的な手順 Step1. 故障したHDDを確認 # cat /proc/mdstat Personalities : [raid0] [raid6] [raid5] [raid4] [linear] [multipath] [raid1] [raid10] md6 : active raid6 sde1[7] sdd1[6] sdf1[8] sdh1[11](F) sdg1[9] sdc1[10] 23441864704 blocks super 1.2 level 6, 512k chunk, algorithm 2 [6/5] [UUUUU_] bitmap: 4/11 pages [16KB], 262144KB chunk (F) とついているのが故障したHDD. ここでは sdh が故障しているのがわかる Step2. シリアル番号を確認 さきほど確認したデバイス名をもとに、HDDのシリアル番号を確認する。 hdparm コマンドで確認可能。 # hdparm -i /dev/sdh|grep Serial Model=WDC WD60EZRZ-00GZ5B1, FwRev=80.00A80, SerialNo=WD-WX11A12BCD3E Step3. 電源断 # poweroff Step4. (物理作業)筐体を開けてHDDを交換する HDDにはられたシール等でシリアル番号を確認。 Step2で確認したHDDのシリアル番号と一致するHDDを取り外す 新しいHDDのシリアルを確認し、代替品と入れ替える。 Step5. Step2と同様のコマンドで、新しいHDDのシリアル番号をもとにデバイス名を特定する。 /dev/sdh のままではないかもしれないことに注意が必要。 最近のLinuxではうまい具合に処理してくれるのか、変わらないことが多い。(はずして消えたHDDのデバイス名が新しいHDDに割り当てられる) ここでは /dev/sdh のままだったと仮定する。 Step6. parted にてパーティションテーブルとRAID用パーティションを作成する # parted /dev/sdh print Error: /dev/sdh: unrecognised disk label Model: ATA WDC WD60EFAX-68J (scsi) Disk /dev/sdh: 6001GB Sector size (logical/physical): 512B/4096B Partition Table: unknown Disk Flags: 新品時は上のようにパーティションテーブルが存在しないことが多い(Partition Table: unknownの部分) mklabel してGPTラベルをつける # parted /dev/sdh mklabel gpt Information: You may need to update /etc/fstab. # parted /dev/sdh print Model: ATA WDC WD60EFAX-68J (scsi) Disk /dev/sdh: 6001GB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags パーティションテーブルが作成されたが、パーティションはまだ1つもない状態。 RAID用パーティションを作成する。 # parted -a optimal /dev/sdh mkpart primary ext4 0% 100% Information: You may need to update /etc/fstab. # parted /dev/sdh print Model: ATA WDC WD60EFAX-68J (scsi) Disk /dev/sdh: 6001GB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 6001GB 6001GB primary パーティションをキャパシティ全体をつかってひとつ作成した。現状では ext4 用なので、これをRAID用に切り替える。 # parted /dev/sdh set 1 raid on Information: You may need to update /etc/fstab. # parted /dev/sdh print Model: ATA WDC WD60EFAX-68J (scsi) Disk /dev/sdh: 6001GB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 6001GB 6001GB primary raid Flags が raid になっていればOK これで /dev/sdh1 が作成され、 mdraid に組み込む準備ができた。 Step7. mdraid へ新しいHDDデバイスを組み込む まず現状の確認 # mdadm -D /dev/md6 /dev/md6: Version : 1.2 Creation Time : Sat Dec 22 02:27:41 2012 Raid Level : raid6 Array Size : 23441864704 (22355.90 GiB 24004.47 GB) Used Dev Size : 5860466176 (5588.98 GiB 6001.12 GB) Raid Devices : 6 Total Devices : 5 Persistence : Superblock is persistent Intent Bitmap : Internal Update Time : Thu Jul 15 09:24:29 2021 State : clean, degraded Active Devices : 5 Working Devices : 5 Failed Devices : 0 Spare Devices : 0 Layout : left-symmetric Chunk Size : 512K Consistency Policy : bitmap Name : localhost.local:6 UUID : 7d2efe2c:584b4fd:7b65d1e42:2395932b Events : 1676565 Number Major Minor RaidDevice State 10 8 33 0 active sync /dev/sdc1 6 8 49 1 active sync /dev/sdd1 7 8 65 2 active sync /dev/sde1 8 8 81 3 active sync /dev/sdf1 9 8 97 4 active sync /dev/sdg1 - 0 0 5 removed HDDデバイスが1つ removed になっている。 この状態であれば mdadm --manage <mdデバイス> -a <追加HDDデバイス> すればOK (完全には故障してないHDDを予備的にとりはずす場合等、明示的にデバイスの故障と取り外しを教えてやる必要がある場合もある。詳細は mdadm(8) を参照) # mdadm --manage /dev/md6 -a /dev/sdh1 mdadm: added /dev/sdh1 # mdadm -D /dev/md6 /dev/md6: Version : 1.2 Creation Time : Sat Dec 22 02:27:41 2012 Raid Level : raid6 Array Size : 23441864704 (22355.90 GiB 24004.47 GB) Used Dev Size : 5860466176 (5588.98 GiB 6001.12 GB) Raid Devices : 6 Total Devices : 6 Persistence : Superblock is persistent Intent Bitmap : Internal Update Time : Thu Jul 15 09:45:13 2021 State : clean, degraded, recovering Active Devices : 5 Working Devices : 6 Failed Devices : 0 Spare Devices : 1 Layout : left-symmetric Chunk Size : 512K Consistency Policy : bitmap Rebuild Status : 0% complete Name : fuji.local:6 UUID : 7d2efe2c:584b4fd:7b65d1e42:2395932b Events : 1676568 Number Major Minor RaidDevice State 10 8 33 0 active sync /dev/sdc1 6 8 49 1 active sync /dev/sdd1 7 8 65 2 active sync /dev/sde1 8 8 81 3 active sync /dev/sdf1 9 8 97 4 active sync /dev/sdg1 11 8 113 5 spare rebuilding /dev/sdh1 追加直後に mdadm -D で確認すると早速再構築が開始されたことがわかる。 Step8. 再構築完了まで待つ /dev/mdstat を眺めると進捗状況や再構築時間の目安がわかる。 今回の場合、 10時間以上かかるようだ。(予測時間は増えることもよくあるので過信しないほうがよい) # cat /proc/mdstat Personalities : [raid0] [raid6] [raid5] [raid4] [linear] [multipath] [raid1] [raid10] md6 : active raid6 sdh1[11] sdg1[9] sdc1[10] sdf1[8] sde1[7] sdd1[6] 23441864704 blocks super 1.2 level 6, 512k chunk, algorithm 2 [6/5] [UUUUU_] [>....................] recovery = 0.1% (10861272/5860466176) finish=622.8min speed=156518K/sec bitmap: 4/11 pages [16KB], 262144KB chunk 以上。
- 投稿日:2021-07-15T00:31:37+09:00
ev3のOSをコマンドラインから量産する.
LEGO社の開発したev3が古くなってきており,すべて点検することになりました. 車検ならぬ,ロボ検です. 今回はev3のOSはクローンの作成ですが,大容量HDDやSSDがあれば,PCで動かしているLinuxOSのバックアップも取れます. ただし,今回と同様にコピー対象のOSは起動してないことが前提となります. そもそも,起動中のファイルをコピーすること自体タブーですが... 大まかな手順は今回記事にする手順と同じだと思いますが,試していないので, 躓いた際は,皆さんで調べて,もしよろしければ教えてください. 2021/07/15追記 SDカードのパーティションが破壊されている個体が数体発見されました. まぁ,フォーマットして,パーティション分割して.... って感じですが,一応その方法も記載しておきます. フォーマットはどの方法でやっても構いません. 私はDebian11上のアプリケーション->アクセサリー->ディスク->ディスクの初期化で行いました. 初期化すると,パーティションが無い状態のSDカードなりUSBなりが表示されると思います. その状態のSDカードの認識名は $ sudo fdisk -l コマンドで探しましょう. 今回は対象のSDカードをsdaとします. 皆さんのPCでは,sdaが本体のHDDかもしれませんので,容易にペーストしないようにお願いします. USBやSDカード系のパーティションには fdisk コマンドで行うという記事をたくさん見かけましたが,今回はわからないことが多いので, $ cfdisk というコマンドを使います. ※cfdiskというのはGUI的にパーティションを作成できる対話型スクリプト?だと思います ターミナル上で $ sudo cfdisk /dev/sda と入力すると,GUIが立ち上がります. 現状,sdaはパーティションが作成されていないので, Free spaceという表示と空き容量が表示されているはずです. 矢印キーで,画面下部のタブを選択できます. 今回はNewで新たなパーティションを作成します. 画面下部に partition size: 212Mというような表示が出てるかと思います. それを設定したい大きさに設定します.(ex.7GBとか60MBとか) 入力して,[Enter]を押すと, [primary][extended]というボタン?が出てくるので,大抵の場合は[primary]だと思います. 今回私は[primary]を選択しました. そうすると,最初のディスク全体の表示に変わります. そのまま書き込むのではなく,パーティションのタイプを変更しなければいけません. 画面下部のタブに[ Type ]という部分が有ると思います. 矢印キーで[ Type ] タブまで移動します.そこで[Enter] そうすると,たくさんの表示が出てきます. そこで希望のファイルタイプを選んでください. その後は[ Write ]タブで書き込み. yes or no と入力する部分をyesと入力して,書き込み完了しました.みたいな表示が出たら,完了. あとは[ Quit ]で抜ければパーティションは作成されています. ev3の起動方法 私たちが使用しているev3は,機体側面に挿入したSDカードを読み込んでブートします. SDカード上にはev3devが書き込まれています. ev3devはev3dev公式ページからダウンロードできます. OSの焼き方などは省略. たくさん量産する理由 そんなん,1台1台セットアップすればええんとちゃう?と思ったそこのあなた. 私も最初はそう思いました.ですがそれでは年が明けてしまいます. 設定項目が重い(net-tools,juputer-notebook,etc...) 設定台数が8台ほど 各ロボット起動時の自動スクリプトなどのコピーがだるい なによりも,そもそもレゴロボット自体の処理が遅すぎて,フリーズしてるのか処理が続いているのかわからないことが多々あったから. ある方法を思いついた ちゃんと起動している(ネットワークやjupyterなど)OSをコピーすればいいんじゃね? ddコマンドでいけるっぽいしな. じゃあ,ddコマンドでやっていきますよっと. まず,正常なOSが入ったデータをPCへ移します. SDカードをカードリーダーやPC本体へ接続したら,fdiskコマンドで認識名を確認します. $ sudo fdisk -l Disk /dev/nvme0n1: 238.47 GiB, 256060514304 bytes, 500118192 sectors ・ ・ ・ Device Start End Sectors Size Type /dev/nvme0n1p1 2048 1050623 1048576 512M EFI System /dev/nvme0n1p2 1050624 498116607 497065984 237G Linux filesystem /dev/nvme0n1p3 498116608 500117503 2000896 977M Linux swap Disk /dev/sda: 14.84 GiB, 15931539456 bytes, 31116288 sectors ・ ・ ・ Device Boot Start End Sectors Size Id Type /dev/sda1 64 98367 98304 48M b W95 FAT32 /dev/sda2 98368 15130623 15032256 7.2G 83 Linux 上記のような表示が出るかと思います. 私の場合はnvme0n1がPCの内蔵SSDです.sdaxがSDカードの認識&パーティション名です. まずはPC上に動かします. ev3_backupというフォルダを作成しておきます. $ mkdir ev3_backup $ cd ev3_backup $ sudo dd if=/dev/sda of=/home/username/ev3_backup/ev3_os.img ddコマンド実行中は何も表示されないので,気長に待ちます. これで,コピーは完了します. なぜかファイル容量が大きくなるバグ? 16GBのSDカードに8GB程度の中身が書き込んであったのだが,書き込む前にファイルサイズを確認すると,16GBという表示. 当然書き込み予定のSDカードカードも16GBなので,書き込めるわけもなく... ddコマンドはイマイチ理解が及んでいないので,追加オプションで改善される可能性もあります. ddコマンドで実行中に表示が出ないのも怖いので,他のソフトなりツールなりを検索...... なんかいいの見つけた. ddrescueというツールが良さそう. $ aptitude search ddrescue p ddrescueview - GNU ddrescue マップファイルのグラフィカルビューア i gddrescue - GNU data recovery tool すでにインストールしてしまったので," i "が付いている方です. ddrescueを使っていきましょう. ddrescueに関する記事 ddrescueを使ってみる. ddrescueの基本書式は以下の通り. コピー元とコピー先はfdiskコマンドで調べておきましょう. $ sudo ddrescue -v /dev/sda1 /dev/sdb1 $ sudo ddrescue -v /dev/sda2 /dev/sdb2 コピー元 コピー先 sda1->sdb1 sda2->sdb2 上記のようにパーティションごとにコピーするのが正しいです. 実行結果 sda1 -> sdb1 へのコピー $ sudo ddrescue -v /dev/sda1 /dev/sdb1 --force GNU ddrescue 1.23 About to copy 50331 kBytes from '/dev/sda1' to '/dev/sdb1' Starting positions: infile = 0 B, outfile = 0 B Copy block size: 128 sectors Initial skip size: 128 sectors Sector size: 512 Bytes Press Ctrl-C to interrupt ipos: 50266 kB, non-trimmed: 0 B, current rate: 15925 kB/s opos: 50266 kB, non-scraped: 0 B, average rate: 12582 kB/s non-tried: 0 B, bad-sector: 0 B, error rate: 0 B/s rescued: 50331 kB, bad areas: 0, run time: 3s pct rescued: 100.00%, read errors: 0, remaining time: n/a time since last successful read: n/a Finished なんと3秒で終了.fdiskで確認した容量では4.8MBでしたが,実際に移動したファイルのサイズは5000kB(5MB)??? このわずかなズレはなぜ??? まぁ,ファイル転送というか読み書きはLinuxの得意分野だけありますね. 次はsda2のコピー結果です. fdiskの確認では7.2GBですが,実際の移動ファイルサイズは7696MB(7.6GB)??? ずれてますね.まぁ,その辺りは謎ということで... sda2 -> sdb2 へのコピー $ sudo ddrescue -v /dev/sda2 /dev/sdb2 --force GNU ddrescue 1.23 About to copy 7696 MBytes from '/dev/sda2' to '/dev/sdb2' Starting positions: infile = 0 B, outfile = 0 B Copy block size: 128 sectors Initial skip size: 256 sectors Sector size: 512 Bytes Press Ctrl-C to interrupt ipos: 7696 MB, non-trimmed: 0 B, current rate: 4489 kB/s opos: 7696 MB, non-scraped: 0 B, average rate: 7992 kB/s non-tried: 0 B, bad-sector: 0 B, error rate: 0 B/s rescued: 7696 MB, bad areas: 0, run time: 16m 2s pct rescued: 100.00%, read errors: 0, remaining time: n/a time since last successful read: n/a Finished 以上の手順でコピーは完了です. おさらいすると. 1. しっかり起動するSDカードを準備 2. ddrescueをインストール 3. SDカードをパーティションごとにコピー 4. 起動することを確認する 5. ※今後のことを考えて,PC上にpart1,part2としてコピー 6. 作成したUSBが起動することを確認する コピーして作成したSDカードOSはIPアドレスなどコピー元と同一の状態となりますので,同時に起動チェックすると,IPアドレス競合状態となりますので,注意してください. おまけ 毎回SDカード挿入してコピーするのは効率が悪すぎます. なので,OSバックアップを兼ねて,ローカルPCに保存しておきます. 最初はディレクトリにぶちこめばいいかと思ってましたが,そうではなさそう. $ cd $ cd ev3_backup $ touch part1 #パーティション1のためのファイル $ touch part2 #パーティション2のためのファイル $ sudo ddrescue -v /dev/sda1 part1 --force $ sudo ddrescue -v /dev/sda2 part2 --force