20200714のMacに関する記事は8件です。

[Mac][USB][Docker] MacOSでWindows 7 iso からWiondows PC向けUSB起動メディア作成

Windows 7 Ultimate がBIOSから起動しなくなったので (おそらくWindows update が原因
詳しくは別記事。)
手持ちのMacbook で、Docker 上のUbuntu でUSB起動メディアを作成した。

(Mac 上でWindows PC用の起動メディア は例はあまり見つからなかったので (Mac のBoot Camp用はあったが)
書留ておく。)

起こったこと  

Windows 7Windows update の後の再起動で BIOSから突然起動しなくなった。(trap? Bitlocker の暗号化更新が 古いbootloaderに対応していない

A recent hardware or software change might have installed a file that is signed incorrectly or damaged, or that might be malicious software from an unknown source.

If you have a Windows installation disk, insert the disk and restart your computer. Click "Repair your computer", and then choose a recovery tool.

Otherwise, to start Windows so you can investigate further, press the Enter key to display the boot menu, press F8 for Advanced Boot Options, and select Last Known Good. If you understand why the digital signature cannot be verified and want to start Windows without this file, temporarily disable driver signature enforcement.

File: \Windows\System32\winload.exe

Status: 0xc0000428

Info: Windows cannot verify the digital signature for this file.

https://neosmart.net/wiki/0xc0000428/

https://www.borncity.com/blog/2019/08/21/windows-7-neuinstallation-und-der-boot-fehler-0xc0000428/
->
結果的に、Windows機向け起動メディアをMacで作成して 修復した。

Windows の代替機があれば、起動メディア作成も難しくないかもだが、
Macbook しかなかったため、容易に方法がみつからなかった。

はじめは検索に出てきたEasy Recovery Essentials というソフトを利用する方法で修復を試みた、が
Bootはしたが結果修復は失敗 したようで、逆にエラー画面すらでなくなった。
そのため、起動メディアを作成 を試すことにした。

https://neosmart.net/wiki/0xc0000428/

細かい流れは別記事に。

試したこと

Mac上で iso などを USB に焼けそうなものだと
UNetBootin, dd, Balena etcher, 直接ファイルコピペ, diskutil など方法があるが、
ファイルformatシステム (FAT32 など) が違うのか
bootable としてて 今回のWindows7 isoはBIOS認識しなかった。

起動メディア作成方法

そして結局うまくいったのは、 WoeUSB
Ubuntu上で動作する WoeUSB が Windows 向けのWindows 起動メディア作成に適しているよう。open source。
https://github.com/slacka/WoeUSB

(Virtualbox/Docker などに Windows iso入れてもよかったが、容量が必要そうだったので
手軽なUbuntu にした。)

Docker + Ubuntu を利用した起動メディア作成の流れ

  • VirtualBox manager でdocker-machine で利用する virtualbox の USB busへのアクセス権利を与える
  • 同時に、ファイル共有などで、ローカル(Mac) にダウンロードしたiso などをコンテナと共有する
  • docker-machine ssh で boot2docker に入り、そこから docker run -v /Volume/shared:/Volume/shared --priviledged --device=/dev/sdb1 ubuntu などとして さらにファイル共有 + USBドライブにアクセス権を渡す
  • 作成したdocker image 上で、WoeUSB をインストールし コマンド実行する

Ubuntu の用意

Docker 上に用意。

今回は、コンテナに
* Virtualbox manager で、USB busにアクセスできるように設定
* docker run--priviledged--device オプションでUSBドライブのアクセス権を渡す。
* 同時に -v で 共有する Volumeを指定する。

# /dev/以下の device node 特定
$ lsblk
...
sda    8:0    0  40G  0 disk
sda1   8:1    0  40G  0 part / #(例

WoeUSB インストールと実行

そのままだと、上手くインストールできなかったが、
記事があったので参考。

https://github.com/slacka/WoeUSB/issues/311

https://www.how2shout.com/linux/how-to-install-woeusb-on-ubuntu-20-04-lts/

# 以下のようにCUI実行 (これはパーティションなし ですべて初期化の場合
$ woeusb --device win7_amd64.iso /dev/sdb 

https://www.mankier.com/1/woeusb

注意点

  • BIOS 起動時にUSB 起動メディアを先にロードするなどBIOS 設定も注意 (BIOS のFast booting などオプションを無効にする
  • BIOS で修復対象のドライブが無効だと 自動修復の際に読み込まれずに、USBメディア自体を書き換える
  • 私の場合 認識するファイルフォーマットは FAT32 (32GB 以上のメモリなら ExFAT)

https://www.quora.com/Which-format-is-better-for-installing-Windows-from-a-USB-drive-FAT32-NTFS-or-exFAT

参考

https://apple.stackexchange.com/questions/355930/how-to-create-a-windows-10-bootable-usb-on-a-mac-for-pc-without-bootcamp-when-i

https://stackoverflow.com/questions/35854886/how-do-i-access-a-usb-drive-on-a-osx-host-from-inside-a-docker-container

https://minus9d.hatenablog.com/entry/2018/11/12/224538

https://qiita.com/shungok/items/6c5a7b5a9d63d51e6615

https://armadillo.atmark-techno.com/blog/10899/4191

https://chrolis.hatenablog.com/entry/2018/09/09/105258

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Dockerの開発環境でGitHubを使用する方法

環境

macOS 10.15.5

コンテナの中に入る

コンテナを起動し指定のコンテナの中に入ります。

terminal
$ docker ps
$ docker exec -i -t コンテナ名 bash

Gitをインストール

terminal
apt-get update && apt-get install -y git

ソースコードのダウンロード

terminal
git clone https://github.com/〇〇/〇〇.git

(必要に応じて)vimのインストール

terminal
apt-get install y vim

例に倣いGitHubと連動

わたしが以前にブログをあげていますのでこちらを参照ください!
GitHubの大まかな全体的な操作方法

pushの際にUsenameとPasswordが求められますので下記の内容を入力します。
Username for 'https://github.com': (GitHubのユーザー名)
Password for 'https://〇〇@github.com': (GitHubアカウントのパスワード)

これで完成になります!Dockerの開発環境の構築のやり方も紹介していますので下記をご覧ください^_^

DockerでRuby on Railsの環境開発を構築

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

TerminalでPython使ったときの終了の仕方(Mac)

はじめに

はじめまして!初めての投稿です。
投稿練習、自分用メモとして書きます。

環境

macOS Catalina 10.15.5

内容

macには標準でpythonが入っていて、Terminalから使うことができます。
起動の仕方と終了の仕方を記します。

手順

  • はじめ方
    terminalを立ち上げて、"python"と入力するだけです。
~$ python
  • 終わり方
    ctrl + Dと入力するとpythonから抜けられます。
    または、exit() あるいは quit() と入力してもOKです。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

macOS CatalinaにRailsをインストールする

はじめに

macOS CatalinaにRailsをインストールする方法です。
Railsチュートリアルなどでローカル環境にセットアップする場合は、ご参考ください。

前提条件

  • OS: macOS Catalina
  • バージョン: 10.15.5
  • Ruby: 2.7.1
  • Rails: 5.1.6

インストール手順

1. Command line tools をターミナルからインストール:
 xcode-select --install
2. Homebrewをインストール:
 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
3. rbenvをインストール:
 brew update
 brew install rbenv
 echo 'eval "$(rbenv init -)"' >> ~/.zshrc
 source ~/.zshrc
 ※macOS Catalinaからbashからzshに変更になっています。
4. rbenvを使ってRubyをインストール:
 rbenv install 2.7.0
5. デフォルトのRuby を設定:
 rbenv global 2.7.0
6. 必要なソフトウェアをインストール:
 brew install yarn
7. Railsのインストール:
 gem install rails -v 5.1.6
 ※ターミナルを再起動しないとデフォルトのRubyが呼び出されてエラーになる可能性があります。

参考

Rails Girls インストール・レシピ

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

PG::ConnectionBad: FATAL: the database system is starting up

MacでRailsアプリ開発中に、rails db:migrateをしたらPG::ConnectionBad: FATAL: the database system is starting upが出た

現象

ターミナル

$ bundle exec rails db:migrate
rails aborted!
PG::ConnectionBad: FATAL:  the database system is starting up
/Users/jun/dic/Task-twitterclone/Rblog/vendor/bundle/ruby/2.6.0/gems/pg-1.2.3/lib/pg.rb:58:in `initialize'
...

解決策

$ rm /usr/local/var/postgres/postmaster.pid         // postmaster.pidを削除
$ brew services restart postgresql         // postgresql再起動

接続確認

$ psql -l
                                    List of databases
              Name               | Owner | Encoding | Collate | Ctype | Access privileges 
---------------------------------+-------+----------+---------+-------+-------------------
 FACEBOOK_EXAM_development       | jun   | UTF8     | C       | C     | 
 FACEBOOK_EXAM_test              | jun   | UTF8     | C       | C     | 
 GraphQL-app_development         | jun   | UTF8     | C       | C     | 

OK!

参考
https://qiita.com/hirocueki2/items/327dc6e87005edf622ad
https://blog.n-z.jp/blog/2020-01-08-homebrew-postgresql.html
https://qiita.com/opiyo_taku/items/2fc4bef8a6bfd468de6a

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

作成中の静的ファイルをターミナルからChromeですぐに確認する

何を書いた記事か

HTMLやJavaScriptのファイルを作成していて、それをブラウザ(Chrome)で確認したいとき、ターミナルから一発で確認する方法です。

Vueの勉強をしていて、新規に作成したファイルをわざわざChromeで開くのにFinder操作とかいろいろするのが面倒だったのでターミナルからワンライナーで開けるようにしました。

※MacOSでの操作方法を記載します。

こうなります。
open_in_chrome.gif

どうやるか

そもそも、ターミナルで指定ファイルをChromeで開くのは下記コマンドで実行可能です。

open -a '/Applications/Google Chrome.app' path/to/file

ただ、これをいちいち打っていくのは非常に面倒なので、 ~/.zshrc~/.bashrc などにaliasを定義しておきます。

alias chrome="open -a '/Applications/Google Chrome.app'"

これで、 chrome と打って対象のファイルを指定するだけで、そのファイルをChromeで開くことができるようになります。

chrome path/to/file

まとめ

ちょっとでも楽になる操作はどんどんaliasに突っ込んで行きましょう

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Remote-ContainersでPodmanを使う動作検証(随時更新)

この記事について

VScode + Remote-ContainersでDockerの代わりにPodmanを使うために調査中の内容です。
Remote-ContainersおよびPodmanの開発が現在進行形なので、現時点で動作可能な環境を記載しています。

【注意!】情報は随時更新されます。内容は 2020/7/14 時点。

→関連記事:VS CodeのRemote-Containersでリモートサーバー上のコンテナーの開発を行う方法

サマリ

  • 完全に動作するのはFedoraのみ(ローカル接続のみ確認。リモート先は未実施。)
  • CentOS8はpodmanのバージョンが古いのでNG
  • macOSでpodman-remote自体は使えるが、Remote-ContainersのバグでDockerのチェックが回避できない
  • Windowsはpodman-remoteの接続設定が未完了のため、VScodeのテストは未実施

各OS組み合わせ

Fedora 32

バージョン情報

  • Kernel: 5.7.8-200.fc32.x86_64
  • Podman: 2.0.2
  • VScode: 1.47.0(1.48.0-insider)
  • Remote-Containers: 0.124.0
    • Docker Pathpodman指定
  • Dockerは未インストール

動作結果

  • 動作確認:「Add Development Container Configuration Files」で追加した素のdevcontainer.json

    • 結果:OK Fedora32_demo01.gif
  • 動作確認:Git cloneしたvscode-remote-try-python
    (下記、課題[1]の修正実施)

    • 結果:OK Fedora32_demo02.gif
  • 動作確認:「Try a Sample」

    • 結果:NG Fedora32_demo03.gif

課題

devcontainer.json
    "remoteUser": "vscode",
    "containerEnv": {
        "HOME": ""
    }
  • [2]Remote-Containersのバージョンを0.124.0を指定する

    • 0.125~0.128では下記のエラーが発生 Screen Shot 2020-07-14 at 4.57.02.png
    • 0.113〜0.118はコンテナエクスプローラーが機能せず
    • 事実上、0.119〜0.124の間でしか機能しない
  • [3]Try sampleのopenでエラー

  • [4]SElinuxを無効化しないとコンテナ内でファイル操作ができない

CentOS8

バージョン情報

  • Kernel: 4.1.8-193.el8.x86_64
  • Podman: 1.6.4
  • VScode: 1.47.0
  • Remote-Containers: 0.124.0
    • Docker Pathpodman指定
  • Dockerは未インストール

動作結果

  • 動作確認:「Add Development Container Configuration Files」で追加した素のdevcontainer.json

    • 結果:NG CentOS8_demo01.gif
  • 動作確認「Try a Sample」

    • 結果:NG CentOS8_demo02.gif
  • 動作確認:「Try a sample」以外

    • 結果:NG CentOS8_demo03.gif

課題

  • Fedoraで動作実績のあるpodmanのバージョンまで上げられれば動作の可能性はあるが、現時点では1.6.4以上のパッケージがない

macOS

バージョン情報

$ podman version
Command "varlink" is deprecated, Please see 'podman system service' for RESTful APIs
Client:
Version:            1.9.3
RemoteAPI Version:  1
Go Version:         go1.13.8
Git Commit:         5d44534fff6877b1cb15b760242279ae6293154c
Built:              Sun Jul  5 03:13:57 2020
OS/Arch:            darwin/amd64

Server:
Version:            2.0.2
RemoteAPI Version:  1
Go Version:         go1.14.3
OS/Arch:            linux/amd64
  • VScode: 1.47.0 or 1.48.0-Insiders
  • Remote-Containers: 0.128.0
    • Docker Pathpodman指定

動作結果

  • 動作確認:「Add Development Container Configuration Files」で追加した素のdevcontainer.json
    • 結果:NG
      • 下記のエラーが発生

Screen Shot 2020-07-13 at 11.42.10.png

  • 動作確認「Try a Sample」
    • 結果:NG
      • 下記のエラーが発生
      • コマンドでpodman build -f...と同じコードを実行しても同じエラー
[30 ms] Start: Resolving remote
[44 ms] Start: Check Docker is running
[44 ms] Start: Run: podman info
[357 ms] Start: Run: podman volume ls -q
[591 ms] Start: Run: podman ps -q -a --filter label=vsch.local.repository=https://github.com/Microsoft/vscode-remote-try-python --filter label=vsch.local.repository.volume=vsc-remote-sample --filter label=vsch.local.repository.folder=vscode-remote-try-python --filter label=vsch.quality=stable
[835 ms] Start: Run: podman build -f /Users/shtanaka/.vscode/extensions/ms-vscode-remote.remote-containers-0.120.0/scripts/volumeBootstrap.Dockerfile -t vsc-volume-bootstrap /Users/shtanaka/.vscode/extensions/ms-vscode-remote.remote-containers-0.120.0/scripts
Error: dial unix /run/podman/io.podman: connect: no such file or directory
[1122 ms] Command failed: podman build -f /Users/shtanaka/.vscode/extensions/ms-vscode-remote.remote-containers-0.120.0/scripts/volumeBootstrap.Dockerfile -t vsc-volume-bootstrap /Users/shtanaka/.vscode/extensions/ms-vscode-remote.remote-containers-0.120.0/scripts
  • 動作確認:「Try a sample」以外
    • 結果:NG
      • 全て下記のエラーが発生

Screen Shot 2020-07-13 at 11.42.10.png

課題

  • Remote-ContainersのバグでDockerのチェックが回避できない
  • podman-remote経由でのbuildが実施できない。パスがリモート先のパスになる
    • v2以上のAPI経由になると改善される?

Windows

バージョン情報

動作結果

  • podman-remote.confの読み込みができていないため、VScodeの動作確認は未実施

課題

  • podman-remote.confの読み込みがうまくいかず(配置先がmacOSと違う?)
    • ~/.config/containers/podman-remote.conf
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

矢印キーを使わないカーソル移動など( Control ショートカット )入門

Mac のキーボードショートカットについては、次のリンクに一覧がありますが、

https://support.apple.com/ja-jp/HT201236

いきなり、全てを完璧に使いこなすのは難しいので、今回は、自分が覚えるためにも「 Control キー + アルファベットキー 1つ 」で利用できるものを、ピックアップして整理してみたいと思います。

というのも、まず、基本的なショートカットキーをマスターしたら、次は、なるべく「 矢印キー 」を使わずに作業できるかどうかが、上級者への道の第一歩だと考えているからで、

ともかく、最低限、次の「 4つ + 2つ 」は、必須と言えるのではないでしょうか?

  • control + F:右に移動する( forward の F ? )
  • control + B:左に移動する( backward の B ? )
  • control + P:上に移動する( previous の P ? )
  • control + N:下に移動する( next の N ? )

次のショートカットは、ターミナルで長いコマンドを実行する際、その前後を修正する時などにも使うので、そっちで覚えている人もいるかもしれませんね。

  • control + A:行の先頭に移動する( アルファベットの最初の文字だから A ? )
  • control + E:行の末尾に移動する( end の E ? )

加えて、キーボードの右上にある「 delete キー 」を使わずに済めば、ほとんど「 ホームポジション 」を崩さずに作業することができるはずです。

  • control + H:カーソルの左にある文字を削除する( ASCII コードの backspace に該当するのが ^H だから H ? )
  • control + D:カーソルの右にある文字を削除する( delete の D ? )

最後に、もう一つだけ、オススメのショートカットキーを紹介します。

  • control + K:カーソルから行の末尾までのテキストを削除する( kill の K ? )

一応「 Shift キー 」も使えば「 shift + control + E 」で、いったん範囲選択することによっても同じことはできるのですが、やはり、より簡単にやりたいことを実行できるのが、ショートカットの魅力で、知っている人だけの特権ですよね。

他にも「 Control キー 」を使ったキーボードショートカットは、色々とあるのですが、とりあえず覚えるとしたら、こんなところではないでしょうか。

また、今回は「 Control キー + アルファベットキー 1つ 」で利用できるもの、という括りで紹介してみましたが、ショートカットキーのまとめ記事については、是非、他のテーマでも、備忘録も兼ねて書いていきたいと思います。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む