今から10年以上前のまだ学生だった頃,当時はBIOSが主流だったのでUbuntuをインストールしたUSBメモリを常にカバンに入れておき,何かあればそれをブートしてPCのメンテをやったりしていた.(起動しなくなったPCからデータをサルベージしてほしい.という友人からのヘルプ要請に応じるのが主な用途だった.笑)
それがUEFIが主流になって以降,作り方がわからず半ば諦めていたが,最近はノートPCに挿しっぱなしできるようなドングルタイプで128GBを超えるようなUSBメモリが安価で手に入ることを知り,ポータブルLinuxを手に入れたい衝動が再燃し,本腰を入れて取り組んでみた.
2025年3月21日金曜日
2024年5月3日金曜日
2021年11月23日火曜日
オフライン環境でDockerを使う.コンテナイメージをエクスポート・インポートする方法
今更だが最近,Dockerを使い始めた.
便利という話は聞いていたが,予想以上の代物でもっと早く使えば良かったと思う今日この頃.
しかし,世の中にはネットに繋がっていない(繋げられない)残念な開発環境も少なくない.
そんな環境でもDockerを使うため,コンテナのイメージをエクスポート/インポートする方法を調べた.
我が家のDebianでイメージを作成し,それをRedHat に取り込んで問題なく動いたので,
大抵のディストリビューションで可能な方法だと思う.
便利という話は聞いていたが,予想以上の代物でもっと早く使えば良かったと思う今日この頃.
しかし,世の中にはネットに繋がっていない(繋げられない)残念な開発環境も少なくない.
そんな環境でもDockerを使うため,コンテナのイメージをエクスポート/インポートする方法を調べた.
我が家のDebianでイメージを作成し,それをRedHat に取り込んで問題なく動いたので,
大抵のディストリビューションで可能な方法だと思う.
2021年10月24日日曜日
Linux サーバーでOpenVPN を構築する
Debianで作成した自作ルーターにOpenVPN を立てたので手順を残す.
今回参考にさせて頂いたのは以下のページ.非常にわかり易い.投稿者様に感謝.
OpenVPNのインストールとセットアップからインターネット接続までのガイドブック - Qiita
手順としては大きく分けて3段階あり,はじめにEasy-RSAで証明書を生成し,次にサーバー用の設定ファイルを作成してOpenVPN を起動する.最後にクライアント用の設定ファイルを作成して,クライアントからVPN 接続できれば完了だ.
まずは,実行環境の確認.Debian 系なら大差ないと思うが,適宜環境に合わせて欲しい.
以降,具体的な手順に移る.
今回参考にさせて頂いたのは以下のページ.非常にわかり易い.投稿者様に感謝.
OpenVPNのインストールとセットアップからインターネット接続までのガイドブック - Qiita
手順としては大きく分けて3段階あり,はじめにEasy-RSAで証明書を生成し,次にサーバー用の設定ファイルを作成してOpenVPN を起動する.最後にクライアント用の設定ファイルを作成して,クライアントからVPN 接続できれば完了だ.
まずは,実行環境の確認.Debian 系なら大差ないと思うが,適宜環境に合わせて欲しい.
$ cat /etc/debian_version 11.1 $ uname -srvmo Linux 5.10.0-9-amd64 #1 SMP Debian 5.10.70-1 (2021-09-30) x86_64 GNU/Linux
以降,具体的な手順に移る.
2021年6月16日水曜日
Celeron J3455 1.5GHz メモリ8GB SSD 128GB のミニPC ACEPC AK1を購入
タイムセールで安くなっていたのでACEPC という中華系メーカーのミニパソコン(AK1
シリーズ)を購入しました.
128 x 128 x 52 mm の小型PC.
CPU は Intel の Celeron(R) CPU J3455 1.5GHz
メモリは 8.0GB
補助記憶は 128GB の SSD
台座のようになっている下部に2.5インチのHDD/SSD を装着でき,最大2TB までストレージを拡張可能です.
128 x 128 x 52 mm の小型PC.
CPU は Intel の Celeron(R) CPU J3455 1.5GHz
メモリは 8.0GB
補助記憶は 128GB の SSD
台座のようになっている下部に2.5インチのHDD/SSD を装着でき,最大2TB までストレージを拡張可能です.
2021年6月11日金曜日
Debian のブータブル USBメモリを作成する
いままでOSのインストールにはDVDを使ってきましたが,最近購入したミニPCにドライブが搭載されておらず,外付けのドライブを使うと読み込み速度が低下するので,USBメモリでブータブルディスクを作成した.
あまりにも簡単に作れて,読み込み速度もDVDの比にならないくらい早いので,もっと早く実践しておけば良かったと後悔.
ということで,ブータブルUSBメモリの作り方.Debianでしか試していないため,他のディストリビューションでも同様の手順で作成できるかは未確認.
まずはISOイメージを取得.もちろんブラウザからアクセスしても問題ない.
ダウンロードが完了したら念の為,ハッシュ値を確認.
rootユーザになって,catコマンドでUSBメモリのデバイスファイルに吐き出し.最後にsyncコマンドを実行
これだけ.あとはパソコンにUSBメモリ挿して,ブートすればOSのインストール画面が開く.ビックリするほど簡単だった.
あまりにも簡単に作れて,読み込み速度もDVDの比にならないくらい早いので,もっと早く実践しておけば良かったと後悔.
ということで,ブータブルUSBメモリの作り方.Debianでしか試していないため,他のディストリビューションでも同様の手順で作成できるかは未確認.
まずはISOイメージを取得.もちろんブラウザからアクセスしても問題ない.
$ get https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-10.9.0-amd64-netinst.iso
ダウンロードが完了したら念の為,ハッシュ値を確認.
$ sha256sum debian-10.9.0-amd64-netinst.iso 8660593d10de0ce7577c9de4dab886ff540bc9843659c8879d8eea0ab224c109 debian-10.9.0-amd64-netinst.iso
rootユーザになって,catコマンドでUSBメモリのデバイスファイルに吐き出し.最後にsyncコマンドを実行
# su # cat debian-10.9.0-amd64-netinst.iso > /dev/sdb # sync
これだけ.あとはパソコンにUSBメモリ挿して,ブートすればOSのインストール画面が開く.ビックリするほど簡単だった.
2021年2月27日土曜日
Bash でプロセスの死活チェックをスマートにやる方法
プロセス名を hogehoge としたとき,
よく見かけるのはこんな感じ.
ps aux で全てのプロセスを表示して,それをプロセス名でgrep し,ただし grep 自身もヒットしてしまうので,それを grep -v で除き,最後に wc でライン数を数える.そのライン数が0よりも大きければプロセスが存在する.と判定する.
やっていることはよく判ります.でもパイプで色々繋いだりすると,想定外の例外で引っかかることが多い...
(例えばプロセス名自体が,どこかに「grep」を含んでいる場合,この方法では検出できない)
よく見かけるのはこんな感じ.
#!/bin/bash
ProcessName=hogehoge
IsActive=`ps aux | grep ${ProcessName} | grep -v grep | wc -l`
if [ ${IsActive} -gt 0 ]; then
echo "${ProcessName} is Active."
else
echo "${ProcessName} is Disactive."
fi
exit 0
ps aux で全てのプロセスを表示して,それをプロセス名でgrep し,ただし grep 自身もヒットしてしまうので,それを grep -v で除き,最後に wc でライン数を数える.そのライン数が0よりも大きければプロセスが存在する.と判定する.
やっていることはよく判ります.でもパイプで色々繋いだりすると,想定外の例外で引っかかることが多い...
(例えばプロセス名自体が,どこかに「grep」を含んでいる場合,この方法では検出できない)
これをもうちょっとスマートにやる方法を紹介します
2021年2月22日月曜日
Linux でGUI を自動操作するツール【自作】
GUI の自動ツールとしては,xdotool
などが有名だが,そういったツールを使用できない場合は自作するのもひとつの手段.
マウスポインターを指定した座標に動かして,クリックするだけのプログラムならば,数行のコードで実現できる.
マウスポインターを指定した座標に動かして,クリックするだけのプログラムならば,数行のコードで実現できる.
click.c
--------------------------------------------------------------------------------
#include <stdlib.h>
#include <X11/extensions/XTest.h>
int main ( int argc, char ** argv )
{
// Arguments 1 is Point of X, Argument 2 is Point of Y
int position[2] = {atoi ( argv[1] ), atoi ( argv[2] ) };
// Open Default Display
Display * display = XOpenDisplay ( NULL );
if ( display != NULL )
{
// Open 'Virtual core XTEST pointer'
XDevice * device = XOpenDevice ( display, 4 );
if ( device != NULL )
{
// Move Poitner
XTestFakeDeviceMotionEvent ( display, device, False, 0, position, 2, 0 );
// Press & Release Left Button
XTestFakeDeviceButtonEvent ( display, device, Button1, True, NULL, 0, 0 );
XTestFakeDeviceButtonEvent ( display, device, Button1, False, NULL, 0, 0 );
XCloseDevice ( display, device );
}
XCloseDisplay ( display );
}
return 0;
}
$ gcc -lX11 -lXi -lXtst click.c -o click $ ./click 100 500
2021年2月7日日曜日
【MySQL,MariaDB】 レプリケーションを設定する
データベースでマスタースレーブ型のレプリケーションを設定する方法を示す.
手元のラズパイ2台を使用するため,MariaDBで設定するが,基本的にはMySQLも同様の方法でできるはずだ.
データベースの初期設定手順は以下のエントリーを参照されたし.
WM×LI: Raspberry Pi にデータベースを構築する【MySQL,MariaDB】
手元のラズパイ2台を使用するため,MariaDBで設定するが,基本的にはMySQLも同様の方法でできるはずだ.
データベースの初期設定手順は以下のエントリーを参照されたし.
WM×LI: Raspberry Pi にデータベースを構築する【MySQL,MariaDB】
2021年2月6日土曜日
Raspberry Pi で初回起動時からsshでアクセスする方法
何番煎じかわからないけれど,Raspberry Pi用のmicro SDカードにRaspberry Pi
OSをインストールした直後の初回起動時からsshでアクセスできるようにする方法.
結論から言うと,/boot/ 直下に ssh という名前のファイルを置くだけ.
それでは細かい手順を解説します.
結論から言うと,/boot/ 直下に ssh という名前のファイルを置くだけ.
それでは細かい手順を解説します.
2021年1月13日水曜日
svnsync で定期的にSubversion のバックアップを取得する
これまでSubversion については,何度か取り上げてきたが,
WM×LI: Raspberyy Pi を Subversion のリポジトリサーバにして,systemd で自動起動するように設定する.
WM×LI: 【svnadmin dump】Subversionのリポジトリを別のサーバーに移行する.
WM×LI: Subversionで直前のコミットを取り消す.
今回はsvnsync コマンドを使用して,リモートで定期的にSubversion をバックアップを取るお話.
先日,WebArena IndigoでレンタルしているVPSをアップデート(apt upgrade)していたら,途中で突然停止し,その後アクセス不可,再起動不能になり,Subversionのリポジトリデータが全部吹っ飛んだので,やり方を調べた.
WM×LI: Raspberyy Pi を Subversion のリポジトリサーバにして,systemd で自動起動するように設定する.
WM×LI: 【svnadmin dump】Subversionのリポジトリを別のサーバーに移行する.
WM×LI: Subversionで直前のコミットを取り消す.
今回はsvnsync コマンドを使用して,リモートで定期的にSubversion をバックアップを取るお話.
先日,WebArena IndigoでレンタルしているVPSをアップデート(apt upgrade)していたら,途中で突然停止し,その後アクセス不可,再起動不能になり,Subversionのリポジトリデータが全部吹っ飛んだので,やり方を調べた.
2020年12月12日土曜日
【Youtube動画ダウンロード】 youtube-dlでエラーが発生したら最新のツールに置き換えよう
動画をダウンロードしようとして久しぶりにコマンド叩いたら,以下のようなエラーが発生してダウンロードに失敗した.
ツールが最新ではない場合,上記のようなエラーが発生することがあるようだ.
$ youtube-dl https://www.youtube.com/watch?v=HogeHoge [youtube] HogeHoge: Downloading webpage [youtube] HogeHoge: Downloading video info webpage ERROR: HogeHoge: YouTube said: Invalid parameters.(動画のIDはHogeHogeに変更しています)
ツールが最新ではない場合,上記のようなエラーが発生することがあるようだ.
2020年6月13日土曜日
【Debian】 bluetoothctl でスピーカーに接続できないとき
Debianでコマンドラインを使用してBluetooth機器に接続する方法は以下のエントリーに記したとおり.
【Debian】 コマンドラインからBluetooth機器に接続する
しかし同様の方法でBluetoothスピーカーに接続を試みたところ接続に失敗.
ペアリングまでは成功するものの,接続しようとすると下記のようなエラーが表示される.
エラー内容でググったらすぐに解決策が見つかった.どうやらパッケージ不足していたようだ.
インストールが完了したら,以下のおまじないを実行
再度,bluetoothctlでconnectすると今度は問題なく接続された.
【Debian】 コマンドラインからBluetooth機器に接続する
しかし同様の方法でBluetoothスピーカーに接続を試みたところ接続に失敗.
ペアリングまでは成功するものの,接続しようとすると下記のようなエラーが表示される.
# connect AA:BB:CC:DD:EE:FF Attempting to connect to AA:BB:CC:DD:EE:FF Failed to connect: org.bluez.Error.Failed
エラー内容でググったらすぐに解決策が見つかった.どうやらパッケージ不足していたようだ.
$ sudo apt install pulseaudio-module-bluetooth
インストールが完了したら,以下のおまじないを実行
$ pulseaudio -k $ pulseaudio --start
再度,bluetoothctlでconnectすると今度は問題なく接続された.
2020年5月27日水曜日
Debian 10.4 (buster) に NVIDIA製のグラフィックボードのドライバーをインストールする
ゲームとかやらないから,グラボなんて要らないでしょ.と思っていた時代が私にもありました.
しかし在宅勤務が推奨されるこのコロナ時代.快適な作業環境を求め,マルチディスプレイ環境を整備すべく,3画面出力可能なグラフィックボードを購入しました.(Amazonで3,500円で買える格安グラボ)
お急ぎ便で注文し,翌日には届いたので,さっそくPCを開け,5年間一度も使われることのなかったPCI Expressスロットに満を持してグラフィックボードを挿入.
PCを起動して,NVIDIAのホームページから製品を選択して,ドライバをダウンロード.
しかし在宅勤務が推奨されるこのコロナ時代.快適な作業環境を求め,マルチディスプレイ環境を整備すべく,3画面出力可能なグラフィックボードを購入しました.(Amazonで3,500円で買える格安グラボ)
お急ぎ便で注文し,翌日には届いたので,さっそくPCを開け,5年間一度も使われることのなかったPCI Expressスロットに満を持してグラフィックボードを挿入.
PCを起動して,NVIDIAのホームページから製品を選択して,ドライバをダウンロード.
2020年5月17日日曜日
【PDFtk】よく使うコマンドまとめ
以前,以下のような記事を残したが,他にもよく使うコマンドがたくさんあるためまとめる.
WM×LI: 【pdftk】PDFにパスワードを設定する.
■ 基本形(ほとんどのコマンドは以下の文法に則っている)
WM×LI: 【pdftk】PDFにパスワードを設定する.
■ 基本形(ほとんどのコマンドは以下の文法に則っている)
$ pdftk 入力するPDFファイル名 cat [出力形式] output 出力するPDFファイル名
2020年5月2日土曜日
【ラズパイ × Dropbox】Dropbox-Uploader の使い方
Linux のコマンドラインから Dropbox を利用する方法として,とても有名なツールに Dropbox-Uploader がある.
そして,Raspberry Pi には専用のデスクトップアプリがないことから,Dropboxにアクセスする方法としては,Dropbox-Uploader がほとんど唯一の手段となっている.
先日,Raspberry Pi で Dropbox-Uplodaer のセットアップをやり直したので備忘録として手順を残す.
Gitをインストールする.
Gitのインストールが完了したらリポジトリから clone する.
Dropbox-Uploaderというフォルダが作成されるため移動し,dropbox_uploader.shを実行する.
そして,Raspberry Pi には専用のデスクトップアプリがないことから,Dropboxにアクセスする方法としては,Dropbox-Uploader がほとんど唯一の手段となっている.
先日,Raspberry Pi で Dropbox-Uplodaer のセットアップをやり直したので備忘録として手順を残す.
Gitをインストールする.
# apt install git
Gitのインストールが完了したらリポジトリから clone する.
$ git clone https://github.com/andreafabrizi/Dropbox-Uploader.git
Dropbox-Uploaderというフォルダが作成されるため移動し,dropbox_uploader.shを実行する.
$ cd Dropbox-Uploader $ ./dropbox_uploader.sh This is the first time you run this script, please follow the instructions: 1) Open the following URL in your Browser, and log in using your account: https://www.dropbox.com/developers/apps 2) Click on "Create App", then select "Dropbox API app" 3) Now go on with the configuration, choosing the app permissions and access restrictions to your DropBox folder 4) Enter the "App Name" that you prefer (e.g. MyUploaderXXXXXXXXXXXXXXX) Now, click on the "Create App" button. When your new App is successfully created, please click on the Generate button under the 'Generated access token' section, then copy and paste the new access token here: # Access token: XXXXX (XXXXXは,以下1〜6の手順を実施しアクセスキーを生成後入力する) > The access token is XXXXX. Looks ok? [y/N]: y The configuration has been saved.
2020年3月7日土曜日
2020年3月5日木曜日
【xkb】tipsまとめ
最近,仕事でキーボードを制御するようなプログラムを書いていて,xkb(X KeyBoard extension)について少し調べたので,少しずつtipsを書き溜めていこうと思う.
- キーボードのレイアウトをpdfファイルに出力する
$ xkbcomp $DISPLAY test.xkb $ xkbcomp test.xkb $ xkbprint test.xkm $ ps2pdf test.xkm $ evince test.pdf
2020年2月15日土曜日
【ALSA】 Linuxで音が出ないときの設定
Linuxで音設定と言えば,ALSA.(Advanced Linux Sound Architectureの略らしい.)
大抵の場合は,音量がミュートになっているだけなので,ALSAをインストールし,alsamixerで音量のミュートを解除する.
それでも音が出ない場合は,デバイスの指定が間違っている可能性が高い.
大抵の場合は,音量がミュートになっているだけなので,ALSAをインストールし,alsamixerで音量のミュートを解除する.
$ sudo apt install alsa-utils $ alsamixer
それでも音が出ない場合は,デバイスの指定が間違っている可能性が高い.
2020年2月2日日曜日
【Debian】Minimal インストールからデスクトップ環境構築まで
Linuxを触り始めた頃からUbuntu一筋だったが,2015年に購入した第四世代Core-i5搭載のデスクトップPCでは,最新版(19.10)のUbuntuを動かすにはスペック不足感が否めなかったため,不要なパッケージはすべて排除すべく,Debian最小構成(Minimalインストール)からの環境を構築した.
Debian(10.2.0)のMinimalインストールの方法は特に難しくはないので,詳細は省くが,言語設定は日本語,rootのパスワードは設定せずにsudoを使用,マルチブート環境なのでパーティションは手動で設定し,最後のソフトウェアの選択は全てチェックを外し(←最小構成)インストールした.以下にインストール直後からの設定を記述する.
Debian(10.2.0)のMinimalインストールの方法は特に難しくはないので,詳細は省くが,言語設定は日本語,rootのパスワードは設定せずにsudoを使用,マルチブート環境なのでパーティションは手動で設定し,最後のソフトウェアの選択は全てチェックを外し(←最小構成)インストールした.以下にインストール直後からの設定を記述する.
登録:
投稿 (Atom)

