2020年3月22日日曜日

ubuntu18.04 on virtulbox のディスク拡張

virtualboxで利用しているubuntuのDISKが足りなくなったので、拡張する。

こちらのサイトの内容とほぼ同じ。
http://ism67ch.net/?p=283

  1. ■ざっくり方針
    1. DISKイメージ(.vdi)を大きくする。
    2. fdisk/parted/resize2fsで領域拡張。
  2. ■事前準備
    1. 電源OFF
    2. 念のためディスクのファイルをコピー(意味あるかは不明)
  3. ■DISKイメージのサイズ拡張
    1. virtualboxの「ファイル」→「仮想メディアマネージャ」でDISKのサイズを増やす対象のVMのDISKサイズを大きくすればよい。
  4. ■ubuntuをメンテナンスモードで起動
    1. 起動時に「ESC」を押し続ける
    2. ブートメニューが表示されたら最後に「(recovery mode)」とついているやつを選択
    3. リカバリーメニューが表示されるので、「root」を選択
  5. ■DISK処理(状態確認)
    1. 「fdisk -l」と「lsblk」コマンド
    2. /dev/sda2と/dev/sda5のStartとEndがかぶっていてよくわからないなと思っていたら、どうも拡張領域(Extended)から論理ボリュームを切り出している様子。約1G。※ sda2/sda5はswap領域で消えてもよいデータなので、削除してsda1を拡張して、最後にswap用に再生成することにした。
      最初の状態
  6. ■sda1を拡張するためにsda2(とsda5)を削除する。※ 先にswapoffをしたほうよい
    1. 「fdisk /dev/sda」コマンドでfdiskの起動。
    2. 「d」で削除。sda2のパーティションを削除する(sda5はsda2上に作られた論理パーティションなので一緒に消える)
    3. sda1の拡張は「parted」コマンドで実施するので、「w」で書き込みして「q」で「fdisk」を抜ける。特定のデバイスつかっているよとエラーが出て、swapを外してなかったことを思い出す。
    4. 「swapon -s」で状態確認、「swapoff /dev/sda5」でswap外し
      sda2パーティション削除

      fdiskの終了

      swap外し(ちょっとグダグダ)
  7. ■sda1を拡張する
    1. 最初のサイトにあった「(prated) resize」はもう使えないと。「(parted) resizepart」で拡張。なにが違うんだろう。
    2. 終わったら「resize2fs /dev/sda1」でFSの拡張も対応。
      partedで領域拡張

      拡張完了

      一応fdiskでも確認
      resize2fsを実行
  8. ■消したsda2/5を作っておく
    1. 「fdisk」コマンドで作成した。
    2. 「swapon」
  9. ■再起動
    1. sda1の拡張はうまくいった様子。
    2. swapは認識していなかった。fstabがUUIDで設定されており、それが変更(というか無い?)ためかと思う。
    3. mkswap /dev/sda5を実施して、表示されるUUIDを/etc/fstabに設定する。
    4. 「swapon -a」でマウント

2018年10月14日日曜日

ubuntu16.04LTSから18.04LTSへのアップグレード失敗

とりあえずubuntu16.04LTS→18.04LTSに失敗して、なんとか復旧できたのでメモを公開。あとで清書しよう。。。。
  • do-release-upgradeでubuntuを16.04LTSから18.04LTSにアップグレード
  • 色々エラーが出ているが気にせず再起動
  • OSは起動してXでのログイン画面が出てくるが、パスワード打ってログインしたら、固まる。
    • このあたり「alt-ctl-F2」とかF1,F3,F4を押すとコンソールになったりする機能があるので、それをつかえればもっと作業しやすかったかも。これに気が付いたのが最後のほうだったので、あまり有効に使えなかった。
  • ALT-CTRL-DELETEで再起動はできる。
  • 起動時にshiftキーを押しておくと「リカバリモード」で起動可能。
    • https://kledgeb.blogspot.com/2012/08/ubuntu-1204_28.html
  • pkg fixでも治らない
  • (何度か再起動)
  • networkを有効にしてroot promptに入る
  • なぜかresolve.confが更新されないので、手動で作る。echo 'nameserver 8.8.8.8' > /etc/resolv.conf
  • ググるとでてくる、「https://bugs.launchpad.net/ubuntu/+source/systemd-shim/+bug/1773859」これっぽい。
    • 「/usr/share/dbus-1/system-services/org.freedesktop.systemd1.service 」を「/usr/share/dbus-1/system-services/org.freedesktop.systemd1.service.systemd」にmvしようとするが、失敗して止まる。多分「「/usr/share/dbus-1/system-services/org.freedesktop.systemd1.service.systemd」がすでにあるの場合に失敗するのかと思われる。(少なくとも私の環境ではすでにあった。)
    • 別の名前にmvする。
  • apt-get -f install でインストール失敗しているpkgをインストール
    • これって、apt-get updateでローカルのパッケージ一覧を更新している前提があって、「-y install」で、失敗しているpkgをインストールできることになるという理解であってますかね。。。
  • やはり途中で止まる。。。「リカバリモード」のrootでログインして、「apt update」「apt upgrade」を実行したら「dpkg --configure -a」を実行しろとのこと。いわれるまま進める。
  • サービス起動(?)の「Started Braille Device Support.」で刺さる。「ctrl-z」でとめて、「killall systemctl」を打ってから、「fg」。もう意味わからないけど、とりあえず進む。
    • https://askubuntu.com/questions/731671/botched-upgrade-dpkg-hangs-on-started-braille-device-support
  • これも出た。「python3-aptdaemon.pkcompat : Conflicts: packagekit
                                          Conflicts: packagekit:i386」
    「apt remove」でpython3-aptdaemon.pkcompatを消してから、「apt upgrade」する。
  • https://askubuntu.com/questions/837927/trying-to-upgrade-packages
  • systemdあたりでひっかかったらひたすら「killall systemctl」でしのぐ

2017年5月27日土曜日

Let's Encript

無料のSSL証明書が、メジャーなアプリのルート証明書に登録された認証局から発行されるとのこと。SSL証明書を入手するにはお金がかかるし、手間もかかるので見送っていたが、やってみることにした。

下記当たりの記事がとても参考になりました。

  • http://knowledge.sakura.ad.jp/knowledge/5573/
  • https://hyper-text.org/archives/2016/10/lets_encrypt_ssl_quick_start.shtml
  • https://letsencrypt.jp/usage/install-certbot.html
  • https://hyper-text.org/archives/2015/01/full_time_ssl_website_quick_start.shtml

自分で確認した感じ。。。。
  • 証明書系
    • DV証明書がでる。まあSSL暗号化で利用する分程度に問題ない証明書と思えばよいのかな。
    • 証明書のレベルってこんな感じ?
      • DV証明書:ドメインとサイトが同じ管理者を確認。フィッシングなどでユーザ側のタイポとかのちょっとしたミスで別のサイトに行っても正しい証明書が出る。
      • OV証明書:申請者企業があることを証明。フィッシングサイトを作ることもできるが、企業情報を認証局に送るので逃げることができない。(実際には、逃げるやり方はいっぱいあるだろけど。)
      • EV証明書:信頼できる!(ようわからんが)
  • 仕組み系
    • certbotというツールが標準
    • ACMEというプロトコルで実施する
    • 取得できる証明書はドメインとサイトが「正しい」こと。
    • 「正しい」のは1(certbotが稼働するなかで)認証局からWebサーバにアクセスして、想定されるコンテンツがあることを確認する。
    • Webサーバは、以下のどちらの方法も可能。
      • certbotが起動してくれる方法(デフォルト?)
      • 既存で起動しているWebサーバにコンテンツを置く(オプションで-wしてdocumentrootパスを指定)する方法。
とりあえず、無料証明書うれしいっす!!

2017年4月30日日曜日

ubuntuでnokogiriをgemでインストール

「Ubuntu 16.04.2 LTS」にはlibzがシステムインストール(※1)されている。 なのに、gemでnokogiriをinstallしようとしたら、libzがないといわれてしまう。
システムのlibzを使いたいとおもい色々ググった結果(※2)、以下でOKみたい。 「--」で「extconf.rb」にオプションを渡せるようだ。

% gem update nokogiri -- --use-system-libraries

しかし、これだけではpkg-configで「libxml-2」、「libxslt」、「libexslt」が見つからないといったエラーが出てしまっているので、libxml2-dev、libxslt1-devをパッケージでインストール。pkg-config用の「.pc」ファイルが作成された(※3)。これでinstalを進めたらうまくインストールできた。

bundle対応

bundleでインストールする際にオプションをつけたい場合には、bundle configコマンド(※4)で対応。
% bundle config build.nokogiri --use-system-libraries
このコマンドを実行すると「~/.bundle/config」に設定が書き込まれるようだ。
(※1) /lib/x86_64-linux-gnu/libz.so.1
(※2) http://www.nokogiri.org/tutorials/installing_nokogiri.html
(※3) /usr/lib/x86_64-linux-gnu/pkgconfig/{libxml-2.0,libxslt,libexslt}.pc
(※4) http://ruby.studio-kingdom.com/bundler/bundle_config/#build_options

2016年4月16日土曜日

fml

メーリングリストマネージャーは、とりあえずfmlで実施。
。。fmlはあまり活発で無いし、他のメーリングリストマネージャはめぼしい物が無い。流行ってないのかな。

ユーザ/グループ fml/fmlで実施。

java parser

jay: javaのソースを出力するパーサ。jruby等で使われていると思われる。
ANTLR: これもjava用のパーサ

(参考)
http://www.infoq.com/jp/news/2007/09/xruby-another-ruby-on-jvm

jailに向けてnullfs/unionfs

unionfs/nullfsの両方とも既存のファイルシステムを対象のディレクトリにマウントする。

unionfsは透過的にマウントするので、マウント先にファイルがあったら、それも見える。
nullfsは透過的では無いのでマウント先にファイルがあっても見えなくなる。

でjailにむけてやりたいこととして、ホストの/usrをjailの/usrで見えるようにしたい。だけど、jailの中で/usrのファイルを変更してもホスト側の/usrに影響が出ないようにする。

出てくるディレクトリは以下
・ /usr :ホストの/usr
・ /jail/root/jail1/ :jail1のrootディレクトリ。このディレクトリをrootとしてjailを起動する。
・ /jail/base/jail1/ :jail1の中で作成されたファイルが置かれる場所

mount -t nullfs -r /usr /jail/root/jail1/usr
mount -t unionfs /jail/base/jail1/usr /jail/root/jail1/usr

1行目で、/usrはリードオンリーで/jail/root/jail1/usrにマウントされるので、/usrが変更されることは無い。
2行目で、jailの中で/usrディレクトリに変更が入ると、変更内容は/jail/base/jail1/usrの反映される。

(ちょっとすごい)
・ unionfsでマウントした先(ここではjail/root/jail1/)でファイルを消したら、マウントの元ファイルも消える。ここまでは想像とおりですが、いったんunmountして、mountしなおしをしたら、/jail/root/jail1のファイルが見えるかと思ったら、消えたままだった。
→ umountして、/jail/base/jail1でファイルの作成・削除をした後、再度mountしたらファイルが復活していました。(その前に一度root/jail1にmountしたかも)

.....
てなことをしていたら、/jail配下でrm -rf * とかしてしまい、マウントしていたファイルもすべて消してしまった。。。。
・再インストール。
・freebsd-update fetch
・freebsd-update install
・pkg install virtualbox-ose-additions
・Xorg -configure
  →できたxorg.conf.newのmouseの記載を変更。
・以下のpkgをインストール
 - 基本ツール → zsh,sudo,
 - xの起動で必要 → fvwm2,xterm
 - xでkeyboardが使えない → x86-input-keyboard
  - xでmouseが使えない
  → 特になしもしなくもmouseは動く(moused?)のだが、クリックができない。
    理由はわからないが、handbookにしたがって、xorg.confの設定や、haldの設定をして、
    vboxmouseを利用するように記載しても変わらず。
    https://www.freebsd.org/doc/en/books/handbook/virtualization-guest.html
    結局 xf86-input-mouse をインストールして使っている。たぶんvboxmouseではなく、通常のとおりの利用と思われる。
  - xクライアントが飛ばせない。単なる認証系の問題。 → xauthをインストール