「デュアルブート」の版間の差分

Notion-MW
Notion-MW
 
(同じ利用者による、間の11版が非表示)
17行目: 17行目:
* Bitlockerを有効にしたあとにwinを起動すると再起動ループにハマることがある。解決法(Manage-bdeを使う)→[https://community.spiceworks.com/how_to/124388-stop-a-bitlocker-boot-loop Stop a BitLocker boot loop - Windows Forum - Spiceworks]
* Bitlockerを有効にしたあとにwinを起動すると再起動ループにハマることがある。解決法(Manage-bdeを使う)→[https://community.spiceworks.com/how_to/124388-stop-a-bitlocker-boot-loop Stop a BitLocker boot loop - Windows Forum - Spiceworks]


<span id="windowsパーティションのマウント"></span>
<span id="windowsパーティションntfsのマウント"></span>
== Windowsパーティションのマウント ==
== Windowsパーティション(NTFS)のマウント ==


{{Outdated}}
{{Outdated}}
40行目: 40行目:
<syntaxhighlight lang="javascript">/dev/sda2    /media/ddrive ntfs-3g noauto,rw,nofail 0  0</syntaxhighlight></li></ul>
<syntaxhighlight lang="javascript">/dev/sda2    /media/ddrive ntfs-3g noauto,rw,nofail 0  0</syntaxhighlight></li></ul>


<span id="bislocker有り"></span>
<span id="bitlocker有り"></span>
=== Bislocker有り ===
=== Bitlocker有り ===


ntfs&#45;3gの前にDislockerで暗号化を解除する。参考→[http://www7390uo.sakura.ne.jp/wordpress/archives/270 http&#58;//www7390uo.sakura.ne.jp/wordpress/archives/2]
ntfs&#45;3gの前にDislockerで暗号化を解除する。参考→[http://www7390uo.sakura.ne.jp/wordpress/archives/270 http&#58;//www7390uo.sakura.ne.jp/wordpress/archives/2]
49行目: 49行目:
<ul>
<ul>
<li><p>コマンド例</p>
<li><p>コマンド例</p>
<pre class="visual">$ sudo dislocker-fuse -V /dev/nvme0n1p3 --recovery-password=xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx -- /media/dl-fuse
<syntaxhighlight lang="vb.net">$ sudo dislocker-fuse -V /dev/nvme0n1p3 --recovery-password=xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx -- /media/dl-fuse
$ sudo mount -o loop,rw /media/dl-fuse/dislocker-file /media/win/</pre></li>
$ sudo mount -o loop,rw /media/dl-fuse/dislocker-file /media/win/</syntaxhighlight></li>
<li><p>fstab例</p>
<li><p>fstab例</p>
<pre class="visual">/dev/nvme0n1p3     /media/bitlocker     fuse.dislocker recovery-password=xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx  0 0
<syntaxhighlight lang="vb.net">/dev/nvme0n1p3     /media/bitlocker     fuse.dislocker recovery-password=xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx  0 0
/media/bitlocker/dislocker-file   /media/win10   ntfs-3g   rw,nofail,remove_hiberfile,permissions 0  2</pre>
/media/bitlocker/dislocker-file   /media/win10   ntfs-3g   rw,nofail,remove_hiberfile,permissions 0  2</syntaxhighlight>
<p>と、二行に分けて記載する。</p>
<p>と、二行に分けて記載する。</p>
<ul>
<ul>
<li>permissions ってどういう意味だっけ</li></ul>
<li>permissions については後述</li></ul>
</li></ul>
</li></ul>


==== セキュリティ問題 ====
==== セキュリティ問題 ====


recovery&#45;passwordをfstabに書いてしまうと誰でも見れてしまってセキュリティがヤバいのでどうにかする必要がある
recovery&#45;passwordを暗号化されていないパーティションに書いてしまうと結局Bitlockerの意味が全くなくなってしまうので、Linux側でもBitlockerのような暗号化パーティション(LUKSとか?)やユーザーログイン時に復号される暗号化フォルダ(ecryptfsとか)といったディスク上で暗号化される領域に書いておく必要がある(もちろん毎回パスワードの類を打ち込むのでよければそれでもいい)。


{{Stub}}
<span id="permissions-inheritについて"></span>
=== permissions, inheritについて ===
 
[https://github.com/tuxera/ntfs-3g/wiki/File-Ownership-and-Permissions https&#58;//github.com/tuxera/ntfs&#45;3g/wiki/File&#45;Ownership&#45;and&#45;Permissions] 詳しくはこちらも参照。
 
まず、マウントオプションとして<strong>permissions</strong>を指定しない限り、ntfs&#45;3gでマウントしたファイルは全てパーミッション・所有者が固定(uid, gid, umaskなどで指定)となり、個別のファイルについて変更することはできない。
 
そして、この場合、ntfs&#45;3g経由で作成したファイルはWindows側で見るとすべてAdministratorの所有となり、さらにEveryoneにフルコントロール権限が付与される(この動作を変更するのは筆者の知る限り不可能)。
 
Linuxではフォルダの実行権限(x)が無ければその中に含まれたファイルにはアクセスが通らず、パスを推測することも不可能だが、Windowsではたとえ一切権限のないフォルダであっても中にあるファイル・フォルダのパスがわかれば直接パスを打つことでアクセスが通ってしまうようである(試した限り)。そのため、permissions無しでntfs&#45;3gで作成したファイルはパスさえわかればWindows上の全ユーザーが閲覧・編集・削除できる状態ということになる。
 
従って、Gitを使用する場合や複数ユーザーで使用したい場合などパーミッション管理が必要なデータを扱う場合はもちろん、単に中にあるデータを保護したいという場合でもpermissionsオプションを指定することが必須になる。
 
次に、permissionsを指定して、かつUserMappingを指定しない場合、Linux上でrootが所有するファイルをWindows側で見ると、全てAdministratorsの所有物になり(ここはpermissionsがない場合と同じ)、そのアクセス権はLinux上での見え方と概ね一致するように設定されるようである。他のユーザーが所有するファイルにはS&#45;1&#45;5&#45;21&#45;3141592653&#45;589793238&#45;462643383&#45;10000というような上位桁が円周率に由来する(この部分はハードコードされている)SIDが割り当てられ、こちらもアクセス権が適切に設定される。UserMappingを指定することで、このSIDの部分の割り当てを変更することができる。
 
Windowsに挙動を近づけるための他のオプションとしては<strong>inherit</strong>というのもあり、これは新規作成時に上位フォルダの権限を継承するものである。しかし、これは<u>所有者を継承するオプションではない</u>(そして、所有者が違えばまともに継承もされない)。
 
* [https://github.com/tuxera/ntfs-3g/issues/90 https&#58;//github.com/tuxera/ntfs&#45;3g/issues/90] では、UserMappingがなくても所有者が継承されるようになるパッチが示されているが、これを使うとpermissionsは動かなくなる(chmodなどが使えない)。
 
以上のことから、Windowsの一般ユーザーフォルダの内容などをLinuxから良い感じに(Windows側の権限設定を汚染せずに)使えるようにするには、明示的なUserMappingが事実上必須であることがわかる。
 
一方で、Administrator所有・全ユーザー閲覧可能(あるいは不可能)、といった、Windows側の全ての一般ユーザーに対して共通のアクセス権を適用する設定であれば、UserMappingを使用しなくても簡単に設定が可能である。個人用PCかつ、画像・動画などのメディアファイルやLinuxでしか使用しない大きめのソフトウェアを入れておく用途であれば、こちらで問題ないだろう。
 
Linux側で別ユーザーの所有に見せたい場合は、上記のS&#45;1&#45;5&#45;21&#45;3141592653&#45;589793238&#45;462643383&#45;10000のようなSIDが見えてしまう状態でもよければ(かつ、権限設定にも問題がなければ)それでもいいし、下記のbindfsと併用する方法もある。いずれにしても、Linux側で全員が読み取り・書き込み・実行が可能なファイルは、Linux側での親フォルダの権限によらず、Windows側では(パスさえわかれば)対応する権限でアクセスができてしまうということに注意が必要である。
 
また、Windowsではファイルの新規作成時には必ず実行権限が付加されるので、Linux側でそれを見た場合も実行可能になる(実行権限を外すと.exeなどが実行できなくなる)。従って、GitのレポジトリのフォルダをWindows/Linux間で共用するようなことをすると、Windows側では実行権限無しで(これがデフォルトであるため)コミットされたファイルがLinux側では実行権限有りに見えるため差分が出てしまうといったことが発生する。これはUserMappingでも解決はできないので、Gitリポジトリのあるフォルダを共用するのは不可能である。
 
==== bindfs ====
 
既存のディレクトリを、所有ユーザーやパーミッションを変更してマウントしてくれる。
 
<syntaxhighlight lang="python">sudo bindfs --mirror=myname --force-group=myname /media/win ~/.mnt_win/</syntaxhighlight>
または
 
<syntaxhighlight lang="python">sudo bindfs --force-user=myname --force-group=myname /media/win ~/.mnt_win/</syntaxhighlight>
この2つの違いは不明
 
作成した
 
sudoがないと<code>fusermount&#58; option allow_other only allowed if &#39;user_allow_other&#39; is set in /etc/fuse.conf</code>とか言われたりする
 
fstabの例
 
<syntaxhighlight lang="python">/media/win /home/myname/.mnt_win fuse.bindfs nofail,map=root/myname:@root/@myname,create-with-perms=g-w 0 0</syntaxhighlight>
Linuxだとrootのデフォルトのumaskが022で一般ユーザーが002なせいで一般ユーザーが作ったファイルが775とか664になってしまったりするがg&#45;wをつけることによって755とか644になる(もちろんchmodすれば変えられる


<span id="minecraft"></span>
<span id="minecraft"></span>
73行目: 117行目:


まずLinuxのランチャーは相対パスどころかシンボリックリンクすら変換して普通の絶対パスにしてしまう(設定を書き換えてしまう)っぽいので、linuxでは絶対パス指定で/media/win/Users/pathのようにする。で、この書き方をするとWindowsでは相対パスと解釈されるのだが、基準となるフォルダが謎で、「PLAY」を押した時のチェック時は.minecraftが基準なのだが、実際に見られるのはランチャーがあるフォルダが基準(=こっちになかった場合ゲームディレクトリが新たに作られる)
まずLinuxのランチャーは相対パスどころかシンボリックリンクすら変換して普通の絶対パスにしてしまう(設定を書き換えてしまう)っぽいので、linuxでは絶対パス指定で/media/win/Users/pathのようにする。で、この書き方をするとWindowsでは相対パスと解釈されるのだが、基準となるフォルダが謎で、「PLAY」を押した時のチェック時は.minecraftが基準なのだが、実際に見られるのはランチャーがあるフォルダが基準(=こっちになかった場合ゲームディレクトリが新たに作られる)
* ストアアプリ版の(新しい方の?)Minecraftランチャーでは、この「ランチャーがあるフォルダ」は<code>AppData\Local\Packages\Microsoft.4297127D64EC6_8wekyb3d8bbwe\LocalCache\Local</code> あたりである。


従って、ランチャーのフォルダと.minecraft内の両方にmediaというフォルダを作って中にwinという名前でC&#58;\へのジャンクション置くとうまくいく。
従って、ランチャーのフォルダと.minecraft内の両方にmediaというフォルダを作って中にwinという名前でC&#58;\へのジャンクション置くとうまくいく。