1316 文字
7 分
ArchlinuxのhomeディレクトリのWindowsとの共有
旧サイトからの移植記事です。正常に表示できない場合はライトモードもお試しください。コンテンツの賞味期限も切れている場合があります。
LinuxとWindowsをデュアルブートしている人なら誰でも思うことがあるかもしれない疑問がある。
それは"WindowsのUserディレクトリとLinuxのhomeディレクトリ同居できないのか"という問題。
前から自分はずっとそれを思っており、パーティションも/bootと/と/homeとWindowsと別れているのが鬱陶しかった。LinuxからWindowsのファイルを参照することは容易かもしれないがWindowsからLinuxのパーティションを参照するのはちょっと面倒。というより、ユーザーデータ保存のディレクトリをあちこちに作られたら管理が面倒なのだ。

新しいPCがきた。

やるか。

これは私が後日再構築しようと思ったときにすぐできるように、とのメモ書きである。

目標
1 UEFI環境でのArchとWindowsのデュアルブート
2 使用ディレクトリは既存のWindows環境に/ディレクトリのためのパーティションを作成するだけ
3 Windowsの C:user\ とArchの /home/ を同じディレクトリにする


1 パーティションを分ける
当該のマシンは次のパーティション構造になっていた。
 1 EFIパーティション
  2 Windows予約領域
  3 Cドライブ
  4 回復パーティション(WinRE)
  5 Dドライブ
  6 謎(BIOS-RVY)

まずは使わないDを潰してCを拡張、その後ろにArchのインストール領域を作ろうと考えた。
 1 EFIパーティション
  2 Windows予約領域
  3 Cドライブ
  4 Archインストールエリア
  5 回復パーティション(WinRE)
  6 謎(BIOS-RVY)
↑このソフトでDの消去、回復パーティションの後移動、Cのリサイズをして80GBの空領域を作成してもらった。オススメ。

2 Archlinuxを普通にインストール

なんてことない、普通にインストールするだけ。
途中詰まったのがネットワーク、このマシンは有線LANが無いのでこちらを参照してスマホのUSBテザリングで突破した。
上での4のエリアをext4でフォーマット、/mntに4、/mnt/bootに1をマウントしてgenfstabとpacstrap。
ブートローダーはreFindを使った。UIがいいね。

3 /homeを\userにリンクさせる
ここが鬼門だった。ここに書いてることは対したことはないのだがこれに行き付くまでがw
普通にマウントしてもLinuxカーネル自体はNTFSは読み込み専用でしか対応してくれないのでNTFS-3Gをインストール。ついでにyayもインストール。
次に、読み書きできるようになったNTFSをマウントさせる。
/run/media/Windowsフォルダを作成して3をマウント、/run/media/Windows/Usersを/homeにバインドマウント
一応fstabを書いておこう。
/dev/nvme0n1p3           /run/media/Windows ntfs-3g uid=harukin,gid=harukin 0 0
/run/media/Windows/Users /home              none    bind                    0 0
uidやgidは本来あまり関係無いけど、後にwineを入れる時に障壁となったので。
uidgidはutfs-3g固有のオプションらしくマウントしたNTFSディレクトリの所有ユーザーを指定できるもの。既定ではroot:rootになっていて、NTFSのファイルシステムなので変更ができない(chownしてもエラーこそ吐かなくても無効になる)。root:rootでもアクセス書き込みはできるから実用には問題はないが、ユーザー固有のものでないとwineがエラー吐いて導入させてくれなかったので後に追加した。
理解できる人は理解できると思うけども、これはLinuxを使うのが独りである、という場合のみにしか使えない技。

4 Linuxユーザーの作成
ここを参考にしてWindowsディレクトリと同じフォルダを指定してユーザー作成。ただ、フォルダ名と同じユーザー名にすれば勝手に同じフォルダになる(=WindowsのユーザーディレクトリがそのままLinuxのホームディレクトリになる)。


あとはGUIなどお好きに導入して終了。
一部NTFSであることの障壁などはあるが大体問題無く運用できている。
ただ、ドキュメントとかミュージックとかのフォルダがファイルマネージャー(caja)に反映されないのがなんとかならないかなぁってところ。これはWindowsのフォルダをそのまま使用しているからだけども。

この仕組みを使っていることで、わざわざユーザーファイルの居場所を考えることや分裂した容量に頭を悩ませることがなくなり楽になったかな。Archで作業しかけてた項目が当たり前のようにWindowsでも同じ場所にあるってまぁまぁ精神的に楽なもんだ。それまではデータをもう一つのディレクトリにコピペしなきゃならんかったり移動が面倒だったりしたからね。

そんな感じ。

追記:
sshで暗号鍵認証する時にどうしても権限が問題になってしまったのでちょっと強引だけど
/root/.sshの中にファイル作成、/rootのアクセスを許可、/root/.sshの所有者を対象ユーザーに変更、/root/.sshを普通のように権限設定して対象ユーザーの.sshにリンクを張ってなんとかした。あまり推奨できるもんではないってことはわかるね!!