「車輪の再実装」って言葉が好き(実践はできてない)

Linux

起動済みのdockerコンテナのネットワーク名前空間に入る方法

まず、あらかじめ入りたいコンテナのIDか名前を取得しておき、以下の様な手順で入れる。 pid=$(docker inspect <コンテナのIDか名前> --format '{{.State.Pid}}') sudo mkdir -p /var/run/netns sudo mount --bind /proc/${pid}/ns/net /var/run/netns/<名前…

linux namespacesのファイルと永続化について

ip netnsコマンドを使うと、/var/run/netnsディレクトリにファイルを足してネットワーク名前空間を足してくれたり、 /proc/[pid]/ns以下に、そのプロセスの名前空間に対応するファイルを見せてくれるのは知っていたけれど、そのあたりの扱いをうろ覚えなので…

vagrant-libvirtをネストした時のネットワークアドレス衝突への対処法

vagrant-libvirtを使うと、vagrantでlibvirtをproviderとして使うことことができ、自分でvirshコマンド等をいちいち叩かなくてすごい便利なのですが、 表題の通り、ネストして使おうとするとネットワークアドレスが衝突して2段目のvagrant upに失敗します。 …

UNIXドメインソケットの通信相手(プロセス)を調べる

UNIX ドメインソケットを使っているプロセスの番号とファイルディスクリプタの番号を知りたくなったので、やり方をメモ。 以下のようにlsofコマンドを使う。 $ sudo lsof -U +E +c 15 | grep containerd systemd 1 root 48u unix 0xffff8b1691980400 0t0 106…

overlayファイルシステムで複数のlowerdirを使うときの順序

overlay でマウントするときの下位ディレクトリの順番をよく忘れるのでメモ $ mkdir lower1 lower2 upper work merged $ echo 'lower1' >> lower1/file $ echo 'lower2' >> lower2/file $ sudo mount -t overlay \ -o lowerdir=$PWD/lower1:$PWD/lower2,uppe…

Ubuntu18.04 でbcc, bpftraceを動かす

最近流行りのeBPFを研究でつかっている?のですが、せっかくなので使い方のメモを公開しておこうと思います。 OSのセットアップ タイトルにもあるようにUbuntu18.04を使います。 bpfは最近流行っていることもあり、新しいバージョンのカーネルでないと使えな…

Linux (Ubuntu 18.04) からUTokyo WiFiに接続する (GUI編+CLI編)

UTokyo WiFiの公式ページの記載だけでは、Ubuntuからうまく接続できなかったので、 またOSをふっ飛ばして再インストールするであろう将来の自分に向けて接続方法のメモ GUI編 設定例 以下のように設定すれば接続できるはず。 設定項目 設定値 Wi-Fi security…

git bisectを用いてsyscallテーブルの表記変更コミットを探す

linuxにシステムコールを追加しようと思ったりすると、 arch/x86/entry/syscalls/syscall_64.tbl にsys*と書くと思っていたのですが、最近は__x64_sys*という表記に変わっていることに気づきました。 例えばLinux v4.15ではシステムコールテーブルは以下の様…

カーネルモジュールのロードに失敗した話(insmod が Operation not permittedでコケる)。

結論 セキュアブート環境下*1では、カーネルモジュールに署名をつけましょう 経緯 卒論の関係でカーネルモジュールを書いていて、「さて実機で動かすぞ!」という段階でコケました。 自分が悪いコードを書いたせいかと思い、よく転がっていそうな単純なモジ…

gccで本当に使われているデフォルトリンカスクリプトを手に入れる。

結論 ld --verboseではなく、gcc -Wl,--verboseを使いましょう。 環境 $ gcc --version gcc (Ubuntu 8.2.0-7ubuntu1) 8.2.0 Copyright (C) 2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO…