Ubuntuで起動時のエラー

今まで意外とUbuntuの起動に失敗したことがなかったと思う。

今回初めてその手のトラブルに遭遇したので、(すぐ解決した割りには)自分的にはかなり慌てた。

いつものように今後のためにメモ。

 

前回のシャットダウン時に何かやったんじゃないかと思うんだけど、起動したUbuntuの最初の画面の代わりに変なエラーが出てきた。

もちろんしばらく待っても、いつもの画面が出てこない。

面白そうだったのでとっさにスマホで撮影。

でもよーく見ると、それほど大したことは書いてなかった。

とにかくマニュアルでfsckを起動してねということらしい。

コマンドプロンプトの代わりに「(initramfs)」と出てるので、この後にコマンドを入力。

こんな感じ。

 (initramfs) fsck /dev/sda1

リターン入力後、ひたすら出てくる(Y/N)にyを入力していったらそれで終わった。

最後はどうすればいいかわからなかったので、

 (initramfs) exit

としてみたら再起動して、無事通常のログイン画面が出てくるようになった。

 

今回のエラーはこれで治ったけど、別の問題があるときにはオプション付けたりディスクを指定したりと、コマンド入力時にもうちょい工夫が必要になるっぽい。

こういうエラーが出たら自分みたいに行き当たりばったりで対応するより、ひとまず「ubuntu fsck エラー」という感じでググると情報がたくさん出てくるんで、正しく修正する方法が見つかるんじゃないかな。

まあ今回自分の場合は運が良かったと思います。やれやれ。

UbuntuにArduino IDE(1.8.5)インストール(ちょい追記)

先日のUbuntuのインストール後、もうちょい気づいたこと追記しとく。

前にUbuntuにArduinoをインストールしたものの、ボードを接続したら
 error: cannot access /dev/ttyUSB0
が出てきちゃった、という話を書いた気がする。
そのときは、
 $ sudo chmod 666 /dev/ttyUSB0
で対応した。
でも久々にArduinoを接続してみたら、また同じエラーが出た。
いったんPCの電源を落としちゃうとまた元に戻るのか、恒久的な対策ではなかったらしい。

 

検索すると同じように困ってる人がいて、対処法が山ほど見つかった。
やってることは同じ。参考までに、以下を参照させていただきました。
 https://qiita.com/chromabox/items/b3ceaab6efa6edde2bda
単にdualoutというグループにユーザー(自分)を登録しておけばOKだった。
 $ sudo addgroup ユーザー名 dialout
この後再起動。

 

ただ、dialoutって何?というと、すぐには情報が見つからなかった。
ざっと見た感じ、Debianでシリアルポートを管理しているグループ(で、いいのかな?)、ということらしい。
ここに所属してないユーザーは読み書きの権限が無い。

前はこんなこと無かった気がするなあと思ったら、Arduinoを起動するときにsudo付けてたかなんかだった気がする。
コマンドラインから起動してたもんで。
いつものことながら、一度つまずくと勉強になるもんだなと思う。(と、前向きに結論付ける)

Ubuntu16.04(64bit)にWineインストール

着々と妙なものをインストールしてるメモ。

Arduinoはインストールできたので、他に入れたものでちょっとコケかけたものを書いておく。

(他にも増えそうな気がする)

結局は大丈夫だったんで、参考までに。

 

動かしたいWindowsソフトがあったので、UbuntuにWineを入れることにした。

 $ sudo apt-get install wine

コマンドはこれだけなんだけど、インストール中にはちょくちょくエラーが見えて気になった。

でも最終的には失敗せず終わったので、インストール自体は大丈夫だったらしい。

使いたかったソフトはImageConverter565.exe

 https://github.com/mysensors/MySensorsArduinoExamples/tree/master/libraries/UTFT/Tools

画像データをRGB565で変換するやつ。ArduinoとかでTFTディスプレイに画像を表示したい時には必須。

 

ダウンロードしてきたexeファイルを、右クリックでWineを選択して起動。

一応起動できて、画像も読み込めてます。

 

Linux用のWineについて調べてると、64bit用がインストールされちゃうのでトラブルが多いような記事をよく見かける。

安定してるのは32bit版らしい。あんまり気にしてなかったけど、実は危ない橋を渡ってたかもしれない。

なのでWineで使うソフトウェアは、単純なツールレベルのものぐらいにしておいたほうがいいんじゃないんだろうか。

 

ついでにここにメモするために初めて知った、Ubuntuのコマンド。

画面のスクリーンショット。

 $ gnome-screenshot

数秒後に撮影することもできる、3秒後とか。

 $ gnome-screenshot --delay=3

ちょびっと賢くなった気分。

SDカードのパーティション拡張

SDカードの領域を空ける件、続き。
知りたいことがそのままずばりなところ発見。これは本当に助かった。
 http://www.royalcrab.net/wpx/?p=4983
検索してると元のパーティションを削除して新しいの作るとか、GUIの画面上でというのが多かったので困ってた。
できればMacのターミナル上で、コマンドのみでやりたかったから。
(他の端末とか起動するの、めんどくさい)

 

最初にe2fsprogsというのをインストールしようとしたんだけど、これはbrewで行った。
 $ brew install e2fsprogs
準備できたらSDカードを繋げて、diskutil listでデバイス名確認。

安定の/dev/disk1なので、ここでfdisk起動。
 $ sudo fdisk -e /dev/disk1
fdisk: could not open MBR file /usr/standalone/i386/boot0: No such file or directory
Enter 'help' for information
 fdisk: 1>

無事に起動できた。
プロンプトにprintと入れると、中身が見れるらしい。
 fdisk: 1> print
Disk: /dev/disk1    geometry: 3880/255/63 [62333952 sectors]
Offset: 0    Signature: 0xAA55
         Starting       Ending
 #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
 1: 0C    2 140  11 -    8 235  35 [     40960 -     102400] Win95 FAT32L
 2: 83  192   0   1 -  639   3  16 [    143360 -   30175232] Linux files*
 3: 00    0   0   0 -    0   0   0 [         0 -          0] unused      
 4: 00    0   0   0 -    0   0   0 [         0 -          0] unused      

この、2のLinux fileを編集する。

 fdisk: 1> edit 2
         Starting       Ending
 #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
 2: 83  192   0   1 -  639   3  16 [    143360 -   30175232] Linux files*
Partition id ('0' to disable)  [0 - FF]: [83] (? for help) 

とか出てくるので、あとはリターンキーを押すだけ。自動で最大サイズにしてくれるそうなので、このまま続ける。
Do you wish to edit in CHS mode? [n] 
Partition offset [0 - 62333952]: [143360] 
Partition size [1 - 62190592]: [62190592] 

できたかな?
たぶん大丈夫だと思うので、結果を書き込む。
 fdisk: 1> write
Device could not be accessed exclusively.
A reboot will be needed for changes to take effect. OK? [n] y
Writing MBR at offset 0.t

終わったところでもう一回、中身を確認。
 fdisk: 1> print
Disk: /dev/disk1    geometry: 3880/255/63 [62333952 sectors]
Offset: 0    Signature: 0xAA55
         Starting       Ending
 #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
 1: 0C    2 140  11 -    8 235  35 [     40960 -     102400] Win95 FAT32L
 2: 83 1023 254  63 - 1023 254  63 [    143360 -   62190592] Linux files*
 3: 00    0   0   0 -    0   0   0 [         0 -          0] unused      
 4: 00    0   0   0 -    0   0   0 [         0 -          0] unused      

数字が変わってるんで、反映されてるっぽい。

これで完了。

 fdisk: 1> quit

 

次にインストールされたe2fsckを使って…と思ったら、起動しない。
インストールされたパッケージにパスが通ってなかった。
.bash_profileにexport PATH=$PATH:"/usr/local/opt/e2fsprogs/sbin/" を追加。
これでコマンドが使えるはず。
 $ sudo e2fsck -f /dev/disk1s2
e2fsck 1.43.6 (29-Aug-2017)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
rootfs: 51695/929856 files (7.3% non-contiguous), 3545470/3771904 blocks

ちゃんと動いて、チェック完了。
ようやくここまで来た、リサイズを反映。
 $ sudo resize2fs /dev/disk1s2
resize2fs 1.43.6 (29-Aug-2017)
Resizing the filesystem on /dev/disk1s2 to 7773824 (4k) blocks.
Resizing the filesystem on /dev/disk1s2 to 7773824 (4k) blocks.

さて、これでできたかな?
 $ sudo e2fsck -f /dev/disk1s2
e2fsck 1.43.6 (29-Aug-2017)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
rootfs: 51695/1907808 files (7.3% non-contiguous), 3607064/7773824 blocks

ブロック数が倍増してるし、たぶん大丈夫だと思う。(適当)

PINE64にSDカードを挿して起動。容量を確認。
 $ df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/mmcblk0p2  30550772 13883848  15337072  48% /
devtmpfs          468648        0    468648   0% /dev
tmpfs             502184        0    502184   0% /dev/shm
tmpfs             502184    12884    489300   3% /run
tmpfs               5120        0      5120   0% /run/lock
tmpfs             502184        0    502184   0% /sys/fs/cgroup
/dev/mmcblk0p1     51082    12102     38980  24% /boot

おお、ちゃんと48%まで使用ブロックが減っている。作業する前はギリギリだったのに、これでまたしばらく使えそうだ。

 

ディスクを直接いじりまくるコマンドだから、数字を間違えるだけでえらいことになりそうだけど、やることは意外と簡単。
実際にはムダを省いてコンパクトに使うべきだと思うけど、どうにもならなくなって広いところに引っ越したくなったらやってみるのもいいんじゃないかな。

SDカードのバックアップ&リストア

PINE64でマイニングしてたらSDカードの容量がいっぱいになってしまったので、それを別のカードに移すことを考えた。

何れにしてもここまでやったということでバックアップはしておきたい。

いろいろ調べて、Macのターミナル上で作業したことメモ。

 

まず自分のMacの環境をチェック。SDカードを繋いだ時の状態。

 $ diskutil list

/dev/disk0 (internal, physical):

   #:                       TYPE NAME                    SIZE       IDENTIFIER

   0:      GUID_partition_scheme                        *1.0 TB     disk0

   1:                        EFI EFI                     209.7 MB   disk0s1

   2:                  Apple_HFS Macintosh HD            999.3 GB   disk0s2

   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3

 

/dev/disk1 (external, physical):

   #:                       TYPE NAME                    SIZE       IDENTIFIER

   0:     FDisk_partition_scheme                        *15.5 GB    disk1

   1:             Windows_FAT_32 BOOT                    52.4 MB    disk1s1

   2:                      Linux                         15.4 GB    disk1s2

/dev/disk1がSDカード。pine64.dmgという名前にしてdmgファイルを作成して丸ごとバックアップする。

バックアップファイルはわかりやすいように、とりあえずデスクトップ上に置くことにした。

 $ sudo dd if=/dev/disk1 of=~/Desktop/pine64.dmg

30318592+0 records in

30318592+0 records out

15523119104 bytes transferred in 2693.385196 secs (5763423 bytes/sec)

一時間ぐらいかかったかな。でもなんとかバックアップできた。

 

新しいSDカードと差し替えて、一応確認。

今度は32GBのSDカードにデータを丸ごと移すことにした。

/dev/disk0 (internal, physical):

   #:                       TYPE NAME                    SIZE       IDENTIFIER

   0:      GUID_partition_scheme                        *1.0 TB     disk0

   1:                        EFI EFI                     209.7 MB   disk0s1

   2:                  Apple_HFS Macintosh HD            999.3 GB   disk0s2

   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3

 

/dev/disk1 (external, physical):

   #:                       TYPE NAME                    SIZE       IDENTIFIER

   0:     FDisk_partition_scheme                        *31.9 GB    disk1

   1:             Windows_FAT_32 NO NAME                 31.9 GB    disk1s1

SDカードはアンマウントしてから書き込み。

(最初、マウントしたままでResource busyって怒られた)

 $ diskutil umountDisk /dev/disk1

Unmount of all volumes on disk1 was successful

 $ sudo dd if=~/Desktop/pine64.dmg of=/dev/disk1

これが時間がかかる。カードライターの速度が遅いのもあるけど。

いつまで経っても終わらないので一晩放置しておいた。さすがに朝には終わってた。

 

最後に出てた数字は以下。

30318592+0 records in

30318592+0 records out

15523119104 bytes transferred in 8091.448868 secs (1918460 bytes/sec)

 

これが正しいのかどうかわからなかったのでPINE64に挿してみたら、ちゃんと認識できたので大丈夫だったようだ。

でもこれはあくまで移し替えただけ。

SDカードは元と同じ、16GBしか使用可能になってない。

これを32GBで使用できるようにするんだけど、とりあえずここまで。(疲れた)

Sponsered Link