しおむすび

ごった煮ブログになる予定です。

Windowsで使っていたHDDをUbuntuで使う

目次

 

前提

Windowsで使っていた、データが入っているHDD(以下、HDD A)をUbuntuに移し替えて、ファイルサーバのHDDとして使おうと思います。
他のブログでも使い方紹介がありますが、初心者の自分用の備忘録として書いていきます。
環境は以下の通りです。

事前準備

念のためHDD Aの中のデータをWindows上で別のHDD(以下HDD B)へコピーします。HDD Bは以前もデータ退避用等で使っており、HDD Aと共にNTFSでフォーマットされています。このNTFSフォーマットが後で問題となるのですが…
HDD Bへのコピーは無事に完了し、HDD Aと共にSATAで接続します。ここまでは順調です。

UbuntuにてHDDを使う

本来はUbuntuLinux)で使うためHDD Aを再フォーマットした方が良いとは思いましたが、データが入ったままであり、バックアップをHDD Bへ取ったとはいえ、万が一のことも考えてそのまま使えないか試してみます。
まずHDD Aを使うには、Ubuntuにてマウントしなければいけないらしく、コマンドを打っていきます。接続されているHDD Aの確認から。

$ sudo fdisk -l

ディスク /dev/sdb: 1.82 TiB, 2000398934016 バイト, 3907029168 セクタ
Disk model: HGST HUS726020AL
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: gpt
ディスク識別子: ***********************************

バイス   開始位置   最後から     セクタ サイズ タイプ
/dev/sdb1        34      32767      32734    16M Microsoft 予約領域
/dev/sdb2     32768 3907026943 3906994176   1.8T Microsoft 基本データ

この/dev/sdbにデータが保存されているみたいです。そしてマウントしていきます。マウントポイントは「storage_hdd」にします。

$ sudo mount /dev/sdb2 /storage_hdd
mount: /storage_hdd: マウントポイントが存在しません.

「マウントポイントが存在しない」が出たということは、そのマウントポイントを作らないといけないとだろうと推察し、mkdirでディレクトリをルート直下に作ります。

$ sudo mkdir storage_hdd

再度試すと、

$ sudo mount /dev/sdb2 /storage_hdd
The disk contains an unclean file system (0, 0).
Metadata kept in Windows cache, refused to mount.
Falling back to read-only mount because the NTFS partition is in an
unsafe state. Please resume and shutdown Windows fully (no hibernation
or fast restarting.)

”このディスクには、クリーンでないファイルシステム(0, 0)が含まれています。
メタデータWindows のキャッシュに保存され、マウントは拒否されました。
NTFS パーティションが安全でない状態なので、読み取り専用にフォールバックしてマウントしています。
安全でない状態です。Windows をレジュームして完全にシャットダウンしてください (ハイバネーションや高速再起動は不可。または高速再起動。)”

マウントポイントの作成は成功したみたいです。事前にディレクトリを作らないと行けないようです。
ただし「安全ではない状態です」と言われると、このまま常用し続けるのは厳しいでしょう。このメッセージの対処法を調べてみます。

precure-3dprinter.hatenablog.jp

freefielder.jpこの先人達によると、デュアルブート、特にWin側の高速スタートアップによって引き起こされるエラーのようです。
Ubuntu側でntfsfixコマンドで修復を行い、Win側で高速スタートアップ機能を無効にするのが良さそうです。

エラーの修復

ではUbuntu側にて

$ sudo ntfsfix /dev/sdb2
Mounting volume... The disk contains an unclean file system (0, 0).
Metadata kept in Windows cache, refused to mount.
FAILED
Attempting to correct errors...
Processing $MFT and $MFTMirr...
Reading $MFT... OK
Reading $MFTMirr... OK
Comparing $MFTMirr to $MFT... OK
Processing of $MFT and $MFTMirr completed successfully.
Setting required flags on partition... OK
Going to empty the journal ($LogFile)... OK
Checking the alternate boot sector... OK
NTFS volume version is 3.1.
NTFS partition /dev/sdb2 was processed successfully.

successfullyと出たので上手くいったのでしょう。高速スタートアップ機能の無効化は、

コントロールパネルの開き方

Windowsマーク」→「Windowsシステムツール」→「コントロールパネル」の順でコントロールパネルを開き、緑の「ハードウェアとサウンド」を選択します。

ハードウェアとサウンドを選ぶ

次に「電源オプション」を選択します。

電源オプションを選択

その後、左リスト上の「電源ボタンの動作を選択する」を選択し、

「電源ボタンの動作の選択する」を選ぶ

シャットダウン設定のバー下にある「高速スタートアップを有効にする」のチェックボックスからチェックを外すだけです。もし画像のようにチェックボックスがブレーアウトしていたら、「現在利用可能ではない設定を変更します」をクリックすると選択できるようになります。後は忘れずに変更の保存をして下さい。

高速スタートアップを無効にする
再マウント

保存できればPCを再起動して再度Ubuntuにてログインします。そしてマウントを再実施します。

$ sudo mount /dev/sdb2 /storage_hdd/
$

今度は何もエラー無く、マウントできました。一応マウントできたかどうか確認します。

~$ cd /storage_hdd/
/storage_hdd$ ll
合計 16
drwxrwxrwx  1 root root 4096 12月 12  2021 '$RECYCLE.BIN'/
drwxrwxrwx  1 root root 4096  8月 28 00:57  ./
drwxr-xr-x 21 root root 4096 10月  6 00:54  ../
drwxrwxrwx  1 root root 4096  9月  2 16:55 'System Volume Information'/
drwxrwxrwx  1 root root    0 10月 31  2021  メディアディスク/

しっかりとHDD Aの中が見ることができました。

自動マウントの設定

ただし現状では再起動するとアンマウントされ、起動の度にマウントが必要です。それではとても不便なので自動マウントされるようにします。

qiita.comこのブログによると、自動マウントにはUUIDが必要とのこと。このような点がWindowsとは異なりますね。
まずはUUIDを取得します。

$ sudo blkid /dev/sdb2
/dev/sdb2: LABEL="STORAGE_HDD" BLOCK_SIZE="512" UUID="7***********" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="*****************"

その後、/etc/fstabに設定として書き込みます。

$ sudo nano /etc/fstab
(以下を最終行に追記する)
# /storage_hddを自動でマウントする
UUID=7*********** /storage_hdd ntfs defaults 0 0

追記する内容は以下の通りです。

  1. UUID
  2. マウントポイント
  3. フォーマットタイプ
  4. マウントオプション(通常はdefaultsで良い)
  5. dump設定
    0でdump不要
  6. fsck設定
    0で無実行、1でルートファイルで実行、2でルートファイル以外で実行

1.でパスを指定することもできますが(/dev/sdb2等)、もしHDDを換装し別のHDDがそのパスを使用した場合でも、新しいHDDが/storage_hddにマウントされます。
今回はそのような使い方を想定していないため、HDD AのUUIDを用いて固定的に設定します。
一度設定が上手く出来ているか、以下のコマンドで確認します。

$ sudo mount -a

エラーが出ないので、無事に設定できたようです。更に再起動をかけて確認しても自動的にHDD Aがマウントされました。

これから

無事にHDD AをUbuntuにてマウントできたので、今度はファイルサーバの機能をUbuntuに入れていきます。LinuxのファイルサーバはSambaがベターなのでこれを用いたいと思います。

ログインせずにWiFi USBアダプタを自動起動する(Ubuntu 22.04)

目次

現在の状態

 

新しいElitedesk800 g4 sffを仕事用で使い始めたので、古いg1にはUbuntuを入れてメディアサーバを構築しようとしています。
ただ、このg1はルータが置いてある部屋から離れており、現状無線LAN接続しか選択肢がない状況でした。そこで家に転がっていたArcher T2U NanoをWiFi アダプタとして使用し、以下の記事を参考にドライバをインストールしたのですが、 ログインしないとネットワークアダプタが開始せず、自動ログインをONにして対処していました。

tek2tech.com

通常時はこのUbuntuにノートパソコンやg4からSSHにて接続していますが、GUI操作もできたら万が一の時も良いだろうと思い、リモートデスクトップをする方法を探していました。

note.com

そこでこんな記事を見つけたのですが、GUI環境には1ユーザしかログインできないようで、自動ログインしている現在の状態ではリモートデスクトップにてログインできないと思われます。
一方で、自動ログインしないとLAN接続できないので、リモートデスクトップも使えない…と矛盾した状態に。
ならばログイン無しでWiFi USBアダプタを自動起動できるようにしたいと思います。

 

自動起動の設定

自動起動する方法を探していましたらこんな記事を見つけました。
Ubuntu 16.04の起動時に無線lan接続する · GitHub
この記事を参考に設定を進めてみます。

/etc/network/interfacesをイジる

/etc/network$ ll -a
合計 32
drwxr-xr-x   6 root root  4096  4月 19 19:04 ./
drwxr-xr-x 130 root root 12288  9月 22 21:05 ../
drwxr-xr-x   2 root root  4096  8月 26 23:32 if-down.d/
drwxr-xr-x   2 root root  4096  8月 26 23:32 if-post-down.d/
drwxr-xr-x   2 root root  4096  8月 26 23:32 if-pre-up.d/
drwxr-xr-x   2 root root  4096  8月 26 23:32 if-up.d/

あれ、ないぞ??
調べたらUbuntu16系まではこれで良かったみたいですが、18系以降は
この/etc/network/interfacesがなくなったみたいです…。

そこで追検索をしていたら、

nemui.online

こんな記事を発見。18系以降ではnetplanを書き換えるようです。

netplanを書き換える

$ sudo nano 01-network-manager-all.yaml

# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: NetworkManager

の中は空っぽでした。これが原因かと思い、以下を追記

  wifis:
    wlan0:
      dhcp4: no
      dhcp6: no
      addresses: [192.168.11.111/24]
      gateway4: 192.168.11.1
      nameservers:
        addresses: [192.168.11.1]
      access-points:
        "SSID":
          password: "PASS"

wlan0とSSID、PASSのところは各自環境に合わせて書き換えて下さい。
そして適用

$ sudo netplan apply

** (process:2965): WARNING **: 02:35:24.361: `gateway4` has been deprecated, use default routes instead.
See the 'Default routes' section of the documentation for more details.

** (プロセス:2965)。警告 **: 02:35:24.361: `gateway4` は非推奨となりました。代わりにデフォルトルートを使用してください。
詳しくはドキュメントの 'デフォルトのルート' のセクションを参照してください。

gateway4は非推奨になりましたとさ。海外の投稿でも同じ話題がありました。

unix.stackexchange.com


Default routeの修正

Default routesを書き換えます。

  wifis:
    wlan0:
      dhcp4: no
      dhcp6: no
      addresses: [192.168.11.111/24]
      routes: ★
          - to: default
            via: 192.168.11.1
      nameservers:
        addresses: [192.168.11.1]
      access-points:
        "SSID":
          password: "PASS"

実際の書き込みでは★は消して下さいね。そして再適用

$ sudo netplan apply

今回は何もエラーを吐きませんでした。ifconfigを見るとちゃんと設定されている感じです。


自動ログインをOFFにして再起動

では自動ログインをOFFにしてUbuntu再起動を試します。

WiFiの自動接続に成功しました!ログイン画面でもWiFiに接続できています。
原因はnetplanをしっかりと記述していなかったところだったみたいです。
これで本題のリモートデスクトップ環境を構築できます。

 

ご挨拶

はじめまして蘇我入鹿です

 

これまで多くの情報をネットで集めてきた私ですが、今回共有する側に回ろうかと「しおむすび」を開設してみました。
備忘録として書いていくので、文章の拙さは…ごめんなさい。

このブログでは

  • コンピュータ
  • 写真
  • バイク
  • 日々のHow to

の中で私が出会ったモノ・コトを書いていきたいと思います。
つまり投稿は不定期です。プロブロガーさんのように毎日書いていく気はさらさら無いです。(諦め)

こんなブログですが、以前の私のように困っている誰がこのブログに行き着いて、何か解決の糸口になってくれれば幸いです。
では、始めていきます。よろしくお願いします。