下記のようなスクリプトを配置してsmbのマウントをすべて解除する。スクリプトはrootで実行されるので、suで対象ユーザーに切り替えて実行する。
#!/bin/bash su username -c "gio mount -s smb -f"
実行可能にする。
# chmod +x /etc/NetworkManager/dispatcher.d/pre-down.d/01-gio-unmount
人生の最終目標は気ままな老後生活
下記のようなスクリプトを配置してsmbのマウントをすべて解除する。スクリプトはrootで実行されるので、suで対象ユーザーに切り替えて実行する。
#!/bin/bash su username -c "gio mount -s smb -f"
実行可能にする。
# chmod +x /etc/NetworkManager/dispatcher.d/pre-down.d/01-gio-unmount
下記ファイルの最下行に追記する。
# グループを許可する場合 AllowGroups group1 group2 # ユーザーを許可する場合 AllowUsers user1 user2
ノートパソコンのディスプレイの色がなんか変な感じがして、好みの問題かもしれないけど、温かみが足りないと思いRGBを調整した。
下記のコマンドでディスプレイ名を確認する。
$ xrandr
「eDP」という名前だったので、下記コマンドを自動起動するアプリケーションに登録する。
xrandr --output eDP --gamma 1:0.93:0.93
UnixライクなOSで使用できるshredコマンドを使用する。
※-nオプションは上書きする回数、-vオプションは進捗表示、-zオプションは終わった後にゼロを書き込む
# shred -n 2 -v -z /dev/sdb
予め実行ユーザーをvboxusersグループに所属させておく。
# gpasswd -a username vboxusers
下記のファイルを作成する。パーミッションは644で良い。
[Unit] Description=VirtualBox VM %I After=network.target virtualbox.service Before=runlevel2.target shutdown.target [Service] [Unit] Description=VirtualBox VM %I After=network.target virtualbox.service Before=runlevel2.target shutdown.target [Service] User=username Group=vboxusers Type=forking Restart=no TimeoutSec=300 IgnoreSIGPIPE=no KillMode=none GuessMainPID=no RemainAfterExit=yes ExecStart=/usr/bin/VBoxManage startvm %i --type headless ExecStop=/bin/bash -c '/usr/bin/VBoxManage controlvm %i acpipowerbutton; while [ ! -z "`VBoxManage list runningvms | grep %i`" ]; do sleep 1; done' [Install] WantedBy=multi-user.target
win1とwin2という名前の仮想マシンをサービスとして有効にして起動する。
# systemctl enable vbox@win1 # systemctl start vbox@win1 # systemctl enable vbox@win2 # systemctl start vbox@win2
端末を1つの用途(アプリケーション)専用にする場合、キーボード操作を常に1つのウィンドウで処理したい場面が結構ある。もっとスマートな方法があるだろうけど、とりあえずwmctrlコマンドをcronに登録して1分ごとに専用ウィンドウにフォーカスを行うことにした。
wmctrlのインストール。
# apt install wmctrl
cronに登録。
* * * * * export DISPLAY=:0 && /usr/bin/wmctrl -a ウィンドウタイトル
下記のGoogle先生に聞いた方法を実施後、再起動したら一応使えるようになったけど、kernelの更新とかしても大丈夫なのかは不明。
# apt install bcmwl-kernel-source # modprobe -rv bcma wl # modprobe -v wl
すべてのkernelを削除すると、GRUBから起動できなくなるので、OSのインストールメディアでブートして、そのターミナルでkernelを再インストールする。
まずはインストールするドライブを特定する。下記のコマンドを実行してインストール対象のドライブラベルを確かめる。自分の環境では “nvme0n1p2” でした。
$ lsblk
次に特定したドライブを/mnt/にマウントする。
# mount /dev/nvme0n1p2 /mnt/
更にインストールに必要なディレクトリやファイルをマウント、バインドする。
# mount -o bind /dev/ /mnt/dev/ # mount -o bind /dev/pts/ /mnt/dev/pts/ # mount -t sysfs /sys/ /mnt/sys/ # mount -t proc /proc/ /mnt/proc/ # cp /etc/resolv.conf /mnt/etc/resolv.conf
chrootを実行してからパッケージリストを更新する。
# chroot /mnt/ # apt update
あとは普通にkernelをインストールする。自分はkernelのバージョン5.3.0-51をインストールした。
# apt install linux-headers-5.3.0-51 # apt install linux-headers-5.3.0-51-generic # apt install linux-image-5.3.0-51-generic # apt install linux-modules-5.3.0-51-generic # apt install linux-modules-extra-5.3.0-51-generic
GRUBの設定を更新してインストールしたkernelを示すことを確認する。
# update-grub
Ctrl+Dでchrootを解除し、下記のコマンドでマウントを解除する。
# umount /mnt/dev/pts/ # umount /mnt/dev/ # umount /mnt/sys/ # umount /mnt/proc/ # umount /mnt/
再起動して正常に起動することを確認。
・ OS: Ubuntu 20.04 ・ カーネルバージョン: 5.4.0-29-generic ・ プロセッサ: 8 × AMD Ryzen 5 PRO 3500U w/ Radeon Vega Mobile Gfx ・ メモリ: 13.6 GiB of RAM
どうやらRyzenのIOMMU関連が原因のようで、カーネルのオプションにiommu=softを追加する必要がある。iommu=offだと何らかのIOMMUサポートが必要なデバイスが動かないらしい。
… GRUB_CMDLINE_LINUX_DEFAULT="quiet splash iommu=soft" …
/boot/grub/grub.cfgを更新する。
# update-grub
「apt upgrade」で調子こいて更新しまくっていると、おかしくなったり、意にそぐわない変更があったりして、別のKernelに変更したくなった場合の手順です。
まずは目的のKernelを特定する。起動時にESCを押して起動するKernelの選択画面から特定するのもありだし、aptで探し出しても良いと思う。
目的のKernelバージョンが分かったら、下記のような感じで必要なものをインストールする。
※今回は5.3.0-26から5.0.0-37に戻したい
# apt install linux-headers-5.0.0-37 # apt install linux-headers-5.0.0-37-generic # apt install linux-image-5.0.0-37-generic # apt install linux-modules-5.0.0-37-generic # apt install linux-modules-extra-5.0.0-37-generic
再起動して、起動時にESCを押して先程インストールしたKernelでOSを起動する。
正常動作を確認したら、いらないKernelを削除する形で、GRUBが起動するKernelを先程インストールしたバージョンにする。
※もし使わないKernelを残したい場合はGRUBの設定をいじる
# apt autoremove --purge linux-headers-5.3.* linux-image-5.3.* linux-modules-extra-5.3.*
以後、勝手に新しいKernelが入るのは嫌なので、下記のファイルを作成して更新対象外に設定しておく。
Package: linux-generic linux-headers-generic linux-image-generic Pin: version 5.0.0.37* Pin-Priority: 1001
HWEカーネルを使用している場合はこっち。
Package: linux-generic-hwe-18.04 linux-headers-generic-hwe-18.04 linux-image-generic-hwe-18.04 Pin: version 5.0.0.37* Pin-Priority: 1001