Ubuntu 22.04.1LTS & Windows 7

Ubuntu 22.04.1LTS & Windows 7

This is my private Tips collection in the Ubuntu operating system in which I have had some difficulties to figure out. It may be maniac but it would be happy to be of help to you?
The main operating system is Ubuntu together with Windows 7. Since the incident updates of USB drivers in Windows 10 make the system being unable to reboot several times, Windows 10 is recently replaced by Windows 7 system so as to run older applications.

判明するのにちょっと苦労したUbuntu及びWindows 7オペレーティングシステムにおける小技集です。
マニュアックかもしれませんが、参考になれば嬉しいかな?

Grub Rescue

Dual Boot環境下では、WindowsのUpdate直後、不具合が偶に発生する。今回はBoot Loaderが読み込めずgrubがrescue modeになる不具合が発生。

先ず、Boot Directoryを”ls”コマンドで確認する。

grub rescue> ls
 (hd0) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1)

Bootの在り処はmsdos3でした。以後はお決まりの手順でnormal.moduleを読み込める筈が、dual boot故からか/i386-pc配下にある。

grub rescue> set prefix=(hd0,msdos3)/boot/grub
grub rescue> insmod (hd0,msdos3)/boot/grub/i386-pc/normal.mod
grub rescue> normal
grub rescue中

grubをreinstallする為、起動するOSはUbuntuを選ぶ。
起動したらgrubをreinstallする

$ sudo grub-install /dev/sda

Installing for i386-pc platform.
Installation finished. No error reported.

以上で無事復旧する筈。
尚、rescue modeになった場合、キーボード配列が日本語配列になっていないので注意。

(:Shift+9、):Shift+0、=:^

Boot-Repair-Disk

もう一つ頼もしいブート修復助っ人であるboot-repairレスキューソフトは、起動デスクを立ち上げてその度にInstallする必要がある。

しかし、boot-repair起動ディスクを使えばそんな手間はいらず作業は容易である。

boot-repair-diskのisoファイルははこちらから入手できる。
ダウンロードしたisoファイルをUbuntu標準のStartup Disk Utilityを使ってUSBメモリに焼く。

これで起動させるだけ。

自動で修復される。

Windows 7 Boot Loader Repair

以前easyBCDでUbuntu/WindowsのDual Boot Menuを作成した名残りでBoot Menuが二度出現するウザイ設定になっていたので、easyBCDでBoot Menuを削除した処、UbuntuもWindowsも起動しなくなった。Re-installかと一瞬悩んだが、Boot-Repair-Diskで補修することでUbuntuは立ち上がるようになる。

しかし、Windows 7はBoot Errorで起動しない。Windows 7のインストールディスクで補修を試みるが駄目。ダメ元でWindows 10のインストールディスクで試みるといとも簡単に直り正常に起動するようになる。

尚、Windows側のBoot Menuの設定は下図の通りでWindowsのBoot Loaderは残しておく必要がある。

最終的なWindows 7 Boot Menu

Windows 7 Update

Ubuntuで作業をしている関係でWindowsを使用することは先ずないが、ほんの稀に必要になることがある。そのために従前Windows 10を使っていたが、頻繁な更新と長時間のダウンロードで壁癖していた。矢先誤ってドラーバーを更新してしまい再起動できない大問題に2度遭遇。最初はWindows 10を再インストールしたが、2度目は一時Dual Bootを断念しようと考えた。しかし、Windows環境下ネット接続することはないので、逆に2年前にサポートが終了しUpdateのないWindows 7に変更した方が得策と捉え、再インストールすることにした。

Service Package 1をクリーンインストール後にWindows UpdateがWorkせず、更新ファイルを探り当てられない障害が発生した。ネットでWindows UpdateをWorkableにするSecurity & System Patchを探り出すのが思ったより難儀な作業。何とか得た情報をもとに俺が行った作業過程を紹介しましょう。

必要なファイルは以下の3点のバッチファイル

  1. KB4474419:セキュリティ修正パッチ
  2. KB4490628:サービススタック更新パッチ
  3. KB3125574:システム更新パッチ
    SP1が発行されてから2,016年4月迄に更新された5年分のパッチファイルをRollupしたもの。

2.のKB449068インストール後、Restart指示を受けて再起動してから3.のKB3125574をInstallする。このInstallは多少時間がかかる。俺の場合、再起動後にパスワードを一切受け付けてくれないトラブルが発生。仕方なく、再インストールすることに。最終的にパスワードを設定せずに再インストールを進める。

以上で準備作業は終わり。漸くWindows UpdateがWorkableになる。
Windows Updateの指示に従ってダウンロード、インストール、再起動を繰り返す。時間的には2日程費やした。なお、BrowserはWindows Updateのダウンロードの信頼性の高いInternet Explorer 11を利用。

参考迄に、更新過程のScreen Shootを以下添付する。

共有ファイル

Windowsから通常の状態ではLinuxファイルを参照することはできない。”Ext2Fsd”なるフリーソフトがあるが、Updateが中断しその信頼性は非常に疑わしい。一旦Installしたもののいざ使う段階で使用を断念した経緯がある。ファイルを破損する可能性が否定できない為だ。仕方なく、Fat32でフォーマットした共有デスク(50GB程度)を設けて相互に活用している。

Bootが遅いと思ったら

次のコマンドを実行する

$ systemd-analyze

Startup finished in 2.668s (kernel) + 9.774s (userspace) = 12.442s 
graphical.target reached after 9.766s in userspace

具体的に時間経過を確認したい場合には

$ systemd-analyze blame

6.831s NetworkManager-wait-online.service
4.784s plymouth-quit-wait.service
2.455s dev-sda3.device
2.160s snapd.service
1.194s snap-snap\x2dstore-558.mount
1.147s snap-core20-1169.mount
....

通常、接続関連(NetworkManager-wait-online)が時間を食う。

Disableすることもできるようであるが、

$ sudo systemctl disable NetworkManager-wait-online.service

俺は、〜/etc/systemd/system.confに登録してある時間設定をDefault90sから10sへ短縮している。

因みに、Desktop machineではplymouth-quit-wait.serviceが最も時間を食っている。これは如何ともしがたい。

e4defrag

Linuxのファイルシステム(ext4)は断片化を防ぐ機能が備わっているものの、断片化の状況に付き知りたいと思うことがある。

$ sudo e4defrag -c /

e4defrag 1.45.7 (28-Jan-2021)
<Fragmented files>                             now/best       size/ext
1. /var/lib/gdm3/.cache/mesa_shader_cache/index
                                                73/1              4 KB
2. /var/log/auth.log                            17/1              4 KB
3. /home/pagoda/.cache/Google/AndroidStudio2020.3/LocalHistory/changes.storageRecordIndex
                                                13/1              4 KB
4. /var/log/ubuntu-advantage.log.1              10/1              4 KB
5. /var/log/alternatives.log.1                   7/1              4 KB

 Total/best extents				550363/508597
 Average size per extent			491 KB
 Fragmentation score				0
 [0-30 no problem: 31-55 a little bit fragmented: 56- needs defrag]
 This directory (/) does not need defragmentation.
 Done.
pagoda@cf

デフラグは上記コマンドで-cを除いて実行する。

$ sudo e4defrag /

aptコマンド関連摘要

  • システムにあるパッケージの更新
    apt update
  • 新しいバージョンが利用できるパッケージの一覧表示
    apt list –upgradable
  • システムにあるパッケージのアップグレード
    apt upgrade
  • システムにあるパッケージの全てのアップグレード
    (追加パッケージ導入、不要パッケージ削除、カーネル更新を含む)
    apt dist-upgrade
  • パッケージとその依存のインストール
    apt install <package name>
    sources.list若しくはtrusted.gpgにregisterされる。不要なapt packageをupdateしたくない場合にはlist/gpgから当該packageを削除しておく必要がある。また、これらはSoftware UpdaterのOther Softwareにも関連する項目である。
/etc/apt/ディレクトリ

dpkg Packageのインストール

debファイルのインストールは次のコマンド一行で行う。

$ sudo dpkg -i <Download file.deb>

但し、Dependency関係を自己解消してくれないので、下記のようにManualで対処するしかない。

$ sudo apt install --fix-broken

System Controlアイコンが消えた

気がついたら画面右上の鍵マーク左にあるシステムアイコンが無くなっていた。理由は不明。これがないと不便なので下記コマンドでソフトのInstall有無の確認後に再Installする。

~$ gnome-control-center
~$ sudo apt install gnome-control-center

Login画面でRootで入る

 手順は以下の要領にて

  1. root権限の取得
    Terminalでroot にパスワードを設定し、su -で root に入る
  2. /etc/gdm3/custom.confファイルの修正
    行[security]の後にAllowRoot=trueを追加
  3. /etc/pam.d/gdm-passwordファイルの修正
    auth required pam_succeed_if.so user != root quiet_success行の頭に#をつけてコメント行に変更
  4. reboot
    起動後のLogin画面で、ユーザー名root入力する。パスワードを聞かれるので、先に設定したパスワードを入力すればrootに入れる
~$ sudo passwd root
[sudo] password for pagoda:
New password:
Retype new password:
passwd: password updated successfully
~$ su -

Root権限でFile Managerを開く

ファイル操作をRoot権限で行えると便利である。File ManagerをRoot権限で開く。

sudo nautilus

マルチブート環境下での時計のズレを正す

UbuntuとWindowsを切り替えるたびに時刻が9時間ずれる不具合を修正する。
以下コマンドを実行

~$ sudo timedatectl set-local-rtc true

上記の設定後、Windows上で時刻を同期し直せばズレはなくなる。

ディレクトリ名を英語表示する

 Terminalを使用する場合、ディレクトリ名は英語表示の方が格段に便利。下記コマンドラインにて英語表記に変更できる。因みに、俺は英語版のUbuntuをインストールしているので直接支障はなかったが。

~$ LANG=C xdg-user-dirs-update --force

なお、Login時に下記のようなエラーが表示されたら、

次のようにコマンドラインにてBluetooth Managerの設定を変更する。

~$ sudo gsettings set org.blueman.transfer shared-path '/home/user/Downloads/'

更に、Bluetooth Managerを起動し、ローカルサービス→転送→転送設定の Incoming Folder に「Downloads」を設定しておく。

USB DeviceのVersionを確認する

3.0の表示はVersion 3を示し、ないものは2.0を示す。因みに、最大速度は3.0は5 Gbps (xHCI Controller)、2.0は480 Mbps (EHCI Controller)である。

~$ lspci | grep USB
00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 04)
00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 04)
06:00.0 USB controller: NEC Corporation uPD720200 USB 3.0 Host Controller (rev 04)

USB端子に何も接続していない状態

~$ lsusb -t
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M
        |__ Port 2: Dev 3, If 0, Class=Wireless, Driver=btusb, 12M
        |__ Port 2: Dev 3, If 1, Class=Wireless, Driver=btusb, 12M

USB端子3箇所の内2箇所に3.0と2.0を各々接続した状態

~$ lsusb -t
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M
    |__ Port 1: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M
        |__ Port 2: Dev 16, If 0, Class=Mass Storage, Driver=usb-storage, 480M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M
        |__ Port 2: Dev 3, If 0, Class=Wireless, Driver=btusb, 12M
        |__ Port 2: Dev 3, If 1, Class=Wireless, Driver=btusb, 12M

Crash Reportを削除する

 Login時に発生したCrash Reportを以下のコマンドラインにて削除できる。

~$ ls -l /var/crash 
合計 52344
-rw-r----- 1 pagoda whoopsie 53060670 5月 23 07:24 _opt_google_chrome_chrome.1000.crash 
-rw-r--r-- 1 pagoda whoopsie 0 5月 22 13:01 _opt_google_chrome_chrome.1000.upload 
-rw------- 1 whoopsie whoopsie 0 5月 22 18:40 _opt_google_chrome_chrome.1000.uploaded
 
~$ sudo rm /var/crash/*

英語版Ubuntuを日本語化する

 言語サポートをインストール後、使用する言語を「日本語」に設定し、
システム全体に適用する。

入力ソースに日本語 (Mozc)を登録する。

以上で日本語化Ok。

ディスクをマウントする

~$ mount /media/<username>/<volume> /mnt

アンマウントするには

~$ unmount /mnt

具体例

~$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 465.8G  0 disk 
├─sda1   8:1    0   579M  0 part 
├─sda2   8:2    0 185.7G  0 part 
├─sda3   8:3    0     1K  0 part 
└─sda5   8:5    0 279.5G  0 part /
sdb      8:16   0 298.1G  0 disk 
└─sdb1   8:17   0 298.1G  0 part /media/<username>/<volume>

~$ mount /dev/sdb1 /mnt
mount: only root can do that

~$ sudo mount /dev/sdb1 /mnt
[sudo] password for <username>: 

~$ ls /mnt
'$RECYCLE.BIN'               'smart 2020'   'smartmatrix 2020'
'System Volume Information'   広町の森

~$ cd /mnt

/mnt$ ls -l
total 4194752
drwxr-xr-x  4 <username> <username>  32768 12月 11 12:48 '$RECYCLE.BIN'
drwxr-xr-x  4 <username> <username>  32768 12月 20 06:34 'smart 2020'
drwxr-xr-x  5 <username> <username>  32768 12月 20 06:35 'smartmatrix 2020'
drwxr-xr-x  2 <username> <username>  32768  7月 22 17:04 'System Volume Information'
drwxr-xr-x 17 <username> <username>  32768 12月 15 00:00  広町の森

USBメモリのパーティションを完全に削除する

 OSインストール用のbootable USBを作成していると、パーティションで区切られてしまい、単なるフォーマットでは完全に削除できずに空き容量が小さくなってしまった経験がありませんか。

従前はTerminalでfdiskコマンドを実行して対話モードでパーティションを削除の上フォーマットしていたが余りに面倒なので、最近はUbuntu標準ソフトのGNOME-Disksで行っている。

exFAT形式のUSBメモリを認識する

 exFAT形式のUSBメモリをPCに差してもボリュームが表示されない場合、以下のコマンドラインでexFAT形式を読み込むサービスを追加する。

~$ sudo apt install exfat-fuse exfat-utils

ディレクトリのSymbolic Linkを作成する

 Defaultではマウス右クリックメニューにSymbolic Linkがない設定なので、GNOME-FilesのPreferenceのBehaviorタブを開き Link Creationにチェックを入れておく。

Link Creationにチェックを入れる

リンクしたいディレクトリ若しくはファイルでマウスの右クリックして”Create Link”を左クリックするとLinkされる。コマンドによる設定より格段に容易。コマンド使用の場合、slash(/)如何でエラーが出やすい。

スピーカーから音を出す

19.10にUpdateしてから音が出なくなった。イヤホンは問題なし。そのままにして長く放ったらかしにして置いたが、必要に駆られてが本腰を入れて直しにかかる。ネットで報告されている解決策を一つ一つTry。漸く探り当てた解決策をご紹介する。

Terminalを開き、下記コマンドを入力する。

$ alsamixer

alsamixerの画面が開く。F6を押下してサウンドカード「HDA Intel PCH」を選択する。「Headphone」がゼロになっているので、↑キイで音量を上げる。

ターミナルで下記コマンドを入力する。

$ alsactl --file ~/.config/asound.state store
$ gnome-session-properties

「自動起動するアプリケーションの設定」の画面で追加をクリック。起動するソフトを「alsactl –file ~/.config/asound.state restore」に設定する。名前は任意、例えば、sound等。

以上

Android Studioを手動でインストールする

 何故かsnapが使えなかったので、インストールファイルをダウンロードして下記要領にて手動でインストールしました。

  • ダウンロードした.zipファイルを適切な場所に解凍する。/opt/android-studio/ディレクトリにファイルを解凍。
  • Android Studioのインストール
    ターミナルを開いて、ディレクトリ(/opt/android-studio/bin/)に移動し、studio.shを実行する。
  • 全てのディレクトリから Android Studio を起動できるように、環境変数のPATHに/opt/android-studio/bin/を追加する。
    Login時に「PATH」を自動で設定する為に、ホームディレクトリ直下の隠しファイル(.bashrc)を編集して、PATHに”:/opt/android-studio/bin”を追加することができる。
    具体的には、Terminalにて以下コマンドにてPATHの設定、設定のシステムへの反映、並びに確認を行うことができれる。
~$ su -
~# cd ~/
~# nano .bashrc
~# source .bashrc
~# echo $PATH
  • Android Studio セットアップ ウィザードに従い、開発に必要な Android SDK コンポーネントのダウンロードなどのセットアップ処理を進める。
~# ls -a
. .AndroidStudio3.4 .android .bashrc .config .java .mozc .profile Android Documents Music Public Videos
.. .ICEauthority .bash_history .cache .gnupg .local .mozilla .ssh Desktop Downloads Pictures Templates

~# nano .bashrc
~# echo $PA
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/android-studio/bin

TerminalからBIOS設定に入る

 使用することはないと思うが。

~$ sudo systemctl reboot --firmware-setup

機種によっては以下のエラーを出すこともある。その場合は断念。

Cannot indicate to EFI to boot into setup mode: Firmware does not support boot into firmware.

それにしてもUbuntuもHeavyになりましたね。古い機種にとっては使い辛いです。

Aug 2022