- 投稿日:2020-07-14T22:36:31+09:00
[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 7
がWindows 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/sdbhttps://www.mankier.com/1/woeusb
注意点
- BIOS 起動時にUSB 起動メディアを先にロードするなどBIOS 設定も注意 (BIOS のFast booting などオプションを無効にする
- BIOS で修復対象のドライブが無効だと 自動修復の際に読み込まれずに、USBメディア自体を書き換える
- 私の場合 認識するファイルフォーマットは FAT32 (32GB 以上のメモリなら ExFAT)
参考
https://minus9d.hatenablog.com/entry/2018/11/12/224538
https://qiita.com/shungok/items/6c5a7b5a9d63d51e6615
- 投稿日:2020-07-14T20:13:24+09:00
Dockerの開発環境でGitHubを使用する方法
環境
macOS 10.15.5
コンテナの中に入る
コンテナを起動し指定のコンテナの中に入ります。
terminal$ docker ps $ docker exec -i -t コンテナ名 bashGitをインストール
terminalapt-get update && apt-get install -y gitソースコードのダウンロード
terminalgit clone https://github.com/〇〇/〇〇.git(必要に応じて)vimのインストール
terminalapt-get install –y vim例に倣いGitHubと連動
わたしが以前にブログをあげていますのでこちらを参照ください!
GitHubの大まかな全体的な操作方法pushの際にUsenameとPasswordが求められますので下記の内容を入力します。
Username for 'https://github.com': (GitHubのユーザー名)
Password for 'https://〇〇@github.com': (GitHubアカウントのパスワード)これで完成になります!Dockerの開発環境の構築のやり方も紹介していますので下記をご覧ください^_^
- 投稿日:2020-07-14T18:30:31+09:00
TerminalでPython使ったときの終了の仕方(Mac)
- 投稿日:2020-07-14T15:09:32+09:00
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が呼び出されてエラーになる可能性があります。参考
- 投稿日:2020-07-14T13:16:03+09:00
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
- 投稿日:2020-07-14T09:33:05+09:00
作成中の静的ファイルをターミナルからChromeですぐに確認する
何を書いた記事か
HTMLやJavaScriptのファイルを作成していて、それをブラウザ(Chrome)で確認したいとき、ターミナルから一発で確認する方法です。
Vueの勉強をしていて、新規に作成したファイルをわざわざChromeで開くのにFinder操作とかいろいろするのが面倒だったのでターミナルからワンライナーで開けるようにしました。
※MacOSでの操作方法を記載します。
どうやるか
そもそも、ターミナルで指定ファイルを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に突っ込んで行きましょう
- 投稿日:2020-07-14T04:52:34+09:00
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 Path
にpodman
指定- Dockerは未インストール
動作結果
動作確認:「Add Development Container Configuration Files」で追加した素の
devcontainer.json
動作確認:Git cloneしたvscode-remote-try-python
(下記、課題[1]の修正実施)動作確認:「Try a Sample」
課題
- [1]
Start: Run docker exec
でThe client has reconnected.
が繰り返され、shellが起動しない
- https://github.com/microsoft/vscode-remote-release/issues/3231
devcontainer.json
のremoteUser
を下記のように修正devcontainer.json"remoteUser": "vscode", "containerEnv": { "HOME": "" }
[2]Remote-Containersのバージョンを0.124.0を指定する
[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 Path
にpodman
指定- Dockerは未インストール
動作結果
動作確認:「Add Development Container Configuration Files」で追加した素の
devcontainer.json
動作確認「Try a Sample」
動作確認:「Try a sample」以外
課題
- Fedoraで動作実績のあるpodmanのバージョンまで上げられれば動作の可能性はあるが、現時点では1.6.4以上のパッケージがない
macOS
バージョン情報
- macOS Catalina:10.15.5
- Podman-remote: 1.9.3
- https://github.com/boot2podman/libpod/releases/
- インストール方法は下記
- podman-remoteでFedora 32に接続
- コマンド上はpodmanコマンドの実行は可能
- Dockerは未インストール
$ 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 Path
にpodman
指定動作結果
- 動作確認:「Add Development Container Configuration Files」で追加した素の
devcontainer.json
- 結果:NG
- 下記のエラーが発生
- 動作確認「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
- 全て下記のエラーが発生
課題
- Remote-ContainersのバグでDockerのチェックが回避できない
podman-remote
経由でのbuildが実施できない。パスがリモート先のパスになる
- v2以上のAPI経由になると改善される?
Windows
バージョン情報
- Podman-remote: 1.8.0
- https://github.com/boot2podman/libpod/releases/
- インストール方法は下記
- podman-remoteでFedora 32に接続
- コマンド上はpodmanコマンドの実行は可能
- Dockerは未インストール
動作結果
- podman-remote.confの読み込みができていないため、VScodeの動作確認は未実施
課題
- podman-remote.confの読み込みがうまくいかず(配置先がmacOSと違う?)
~/.config/containers/podman-remote.conf
- 投稿日:2020-07-14T00:39:50+09:00
矢印キーを使わないカーソル移動など( 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つ 」で利用できるもの、という括りで紹介してみましたが、ショートカットキーのまとめ記事については、是非、他のテーマでも、備忘録も兼ねて書いていきたいと思います。