コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
Turgenev's Wiki
検索
検索
表示
ログイン
個人用ツール
ログイン
デュアルブートのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
特別ページ
ページ情報
表示
サイドバーに移動
非表示
←
デュアルブート
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、以下のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
{{Outdated}} WindowsとLinuxのデュアルブートにおいて役に立つ情報を記述する。古いメモを多く含む。[[Linuxのインストール|Linuxのインストール]]も参照。 <span id="windowsのプロダクトキー関連"></span> == Windowsのプロダクトキー関連 == {{UnderConstruction|デュアルブート}} <span id="bitlocker"></span> == Bitlocker == とにかく前もって<strong>回復キーを保存しておくこと!!</strong>逆に回復キーさえあればBitlockerで大きなトラブルになることは多くない。 * [https://www.pcdock24.com/blog/?p=53931 BitLockerとは【BitLockerの要件と自動有効化の問題点】|パソコン修理パソコンドック24] によるとローカルアカウントでBitlockerの有効/無効を確認するときはdiskmgmtから行かなきゃいけないらしい。 * 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パーティションntfsのマウント"></span> == Windowsパーティション(NTFS)のマウント == {{Outdated}} ==== remove_hiberfileについて ==== マウントが成功するにはWindowsが完全シャットダウンされている必要がある(またはそれが望ましい)。ただ、[https://unix.stackexchange.com/questions/107978/cant-access-windows-drive-windows-is-hibernated-refused-to-mount https://unix.stackexchange.com/questions/107978/cant-access-windows-drive-windows-is-hibernated-refused-to-mount]にある通り、windowsを正しくシャットダウンしてもなぜか「ハイバーネートされててマウントできません」的なのが出ることがあるので、マウントオプションにremove_hiberfileを追加するとよい。 * 高速スタートアップを無効にしているにもかかわらず完全シャットダウンされていないことがある気がしたので、Windowsでシャットダウン時に実行するスクリプトとして完全シャットダウンコマンドを追加したりした * デスクトップPCではだいたい不要? <span id="bitlocker無し"></span> === Bitlocker無し === 普通にntfs-3gを使う。数字など適宜読み替えること。主にWindowsのDドライブ想定。 <ul> <li><p>コマンド例</p> <syntaxhighlight lang="javascript">ntfs-3g -o remove_hiberfile /dev/nvme0n1p5 /media/win</syntaxhighlight></li> <li><p>fstabの例</p> <syntaxhighlight lang="javascript">/dev/sda2 /media/ddrive ntfs-3g noauto,rw,nofail 0 0</syntaxhighlight></li></ul> <span id="bitlocker有り"></span> === Bitlocker有り === ntfs-3gの前にDislockerで暗号化を解除する。参考→[http://www7390uo.sakura.ne.jp/wordpress/archives/270 http://www7390uo.sakura.ne.jp/wordpress/archives/2] dislocker-fileの方式だと一旦復号したのをファイルに書き出して静的にマウントするので、(事実上)readonlyとなる。よってdislocker-fuseを使う→[https://www.systutorials.com/docs/linux/man/1-dislocker-fuse/ https://www.systutorials.com/docs/linux/man/1-dislocker-fuse/] <ul> <li><p>コマンド例</p> <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/</syntaxhighlight></li> <li><p>fstab例</p> <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</syntaxhighlight> <p>と、二行に分けて記載する。</p> <ul> <li>permissions については後述</li></ul> </li></ul> ==== セキュリティ問題 ==== recovery-passwordを暗号化されていないパーティションに書いてしまうと結局Bitlockerの意味が全くなくなってしまうので、Linux側でもBitlockerのような暗号化パーティション(LUKSとか?)やユーザーログイン時に復号される暗号化フォルダ(ecryptfsとか)といったディスク上で暗号化される領域に書いておく必要がある(もちろん毎回パスワードの類を打ち込むのでよければそれでもいい)。 <span id="permissions-inheritについて"></span> === permissions, inheritについて === [https://github.com/tuxera/ntfs-3g/wiki/File-Ownership-and-Permissions https://github.com/tuxera/ntfs-3g/wiki/File-Ownership-and-Permissions] 詳しくはこちらも参照。 まず、マウントオプションとして<strong>permissions</strong>を指定しない限り、ntfs-3gでマウントしたファイルは全てパーミッション・所有者が固定(uid, gid, umaskなどで指定)となり、個別のファイルについて変更することはできない。 そして、この場合、ntfs-3g経由で作成したファイルはWindows側で見るとすべてAdministratorの所有となり、さらにEveryoneにフルコントロール権限が付与される(この動作を変更するのは筆者の知る限り不可能)。 Linuxではフォルダの実行権限(x)が無ければその中に含まれたファイルにはアクセスが通らず、パスを推測することも不可能だが、Windowsではたとえ一切権限のないフォルダであっても中にあるファイル・フォルダのパスがわかれば直接パスを打つことでアクセスが通ってしまうようである(試した限り)。そのため、permissions無しでntfs-3gで作成したファイルはパスさえわかればWindows上の全ユーザーが閲覧・編集・削除できる状態ということになる。 従って、Gitを使用する場合や複数ユーザーで使用したい場合などパーミッション管理が必要なデータを扱う場合はもちろん、単に中にあるデータを保護したいという場合でもpermissionsオプションを指定することが必須になる。 次に、permissionsを指定して、かつUserMappingを指定しない場合、Linux上でrootが所有するファイルをWindows側で見ると、全てAdministratorsの所有物になり(ここはpermissionsがない場合と同じ)、そのアクセス権はLinux上での見え方と概ね一致するように設定されるようである。他のユーザーが所有するファイルにはS-1-5-21-3141592653-589793238-462643383-10000というような上位桁が円周率に由来する(この部分はハードコードされている)SIDが割り当てられ、こちらもアクセス権が適切に設定される。UserMappingを指定することで、このSIDの部分の割り当てを変更することができる。 Windowsに挙動を近づけるための他のオプションとしては<strong>inherit</strong>というのもあり、これは新規作成時に上位フォルダの権限を継承するものである。しかし、これは<u>所有者を継承するオプションではない</u>(そして、所有者が違えばまともに継承もされない)。 以上のことから、Windowsの一般ユーザーフォルダの内容などをLinuxから良い感じに(Windows側の権限設定を汚染せずに)使えるようにするには、明示的なUserMappingが事実上必須であることがわかる。 一方で、Administrator所有・全ユーザー閲覧可能(あるいは不可能)、といった、Windows側の全ての一般ユーザーに対して共通のアクセス権を適用する設定であれば、UserMappingを使用しなくても簡単に設定が可能である。個人用PCかつ、画像・動画などのメディアファイルやLinuxでしか使用しない大きめのソフトウェアを入れておく用途であれば、こちらで問題ないだろう。 Linux側で別ユーザーの所有に見せたい場合は、上記のS-1-5-21-3141592653-589793238-462643383-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: option allow_other only allowed if 'user_allow_other' 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-wをつけることによって755とか644になる(もちろんchmodすれば変えられる <span id="minecraft"></span> == Minecraft == .minecraftフォルダをWindowsとLinuxで共有したはいいが、(それ自体.minecraftの中にある)ゲームディレクトリの指定も共有することを考えると、両OSでパスの仕様がやや異なるのが問題になる。 例えば以下ではWindowsのルートが/media/winにマウントされているとする。 まずLinuxのランチャーは相対パスどころかシンボリックリンクすら変換して普通の絶対パスにしてしまう(設定を書き換えてしまう)っぽいので、linuxでは絶対パス指定で/media/win/Users/pathのようにする。で、この書き方をするとWindowsでは相対パスと解釈されるのだが、基準となるフォルダが謎で、「PLAY」を押した時のチェック時は.minecraftが基準なのだが、実際に見られるのはランチャーがあるフォルダが基準(=こっちになかった場合ゲームディレクトリが新たに作られる) * ストアアプリ版の(新しい方の?)Minecraftランチャーでは、この「ランチャーがあるフォルダ」は<code>AppData\Local\Packages\Microsoft.4297127D64EC6_8wekyb3d8bbwe\LocalCache\Local</code> あたりである。 従って、ランチャーのフォルダと.minecraft内の両方にmediaというフォルダを作って中にwinという名前でC:\へのジャンクション置くとうまくいく。 .minecraftの中にはゲームディレクトリ専用のフォルダを作り、その中にmain, snapshotなど用途に応じたフォルダを作っておくとよい == google-drive-ocamlfuse == labelを使うと複数アカウントをマウントできる。デフォルトのラベル名はdefault しばらく使っていないと起動時におそらく認証の失敗が原因でマウントポイントのあるフォルダに対するlsがしばらく一切反応しなくなる(~/.gdfuse内の該当ラベル名のフォルダを削除して最初からやり直せば治る)。よってマウントポイントをホームディレクトリ直下に作るのは避けたほうがよい(gdfというフォルダを作っている)。 <span id="mega"></span> == MEGA == Winが完全にはシャットダウンされていない状態でLinuxを起動するとCドライブ上のMEGAのフォルダが読めずに同期が無効になってしまう。MEGA自身のかわりに、Cが読める状態でのみMEGAを起動するシェルスクリプト(mega-mounted.sh)をスタートアップに登録しておく。Cが読めなかった場合にはdialogコマンドで通知ダイアログを表示する。(このスクリプトではC自身のかわりにC:\Windowsをみている)(gdialogは一部のディストリにしか入っていないかもしれない。実際にコマンド打ってみてどんな表示になるかも含めて確かめておいたほうがよい) <syntaxhighlight lang="shell">#!/bin/sh if [ -d /media/win-rw/Windows ]; then megasync else gdialog --title "Warning" --infobox "MEGAsync is not started because Windows partition is not mounted" 0 0 fi</syntaxhighlight> <span id="bluetooth機器"></span> == Bluetooth機器 == 同じBluetooth機器を同じPCのWindowsとLinux双方にペアリングするというもの。自分はマウスでしかやったことがない。意外と難しいが何とかなる。 ==== 参考 ==== * [https://orumin.blogspot.com/2019/02/bluetooth.html https://orumin.blogspot.com/2019/02/bluetooth.html] * [https://qiita.com/yoko-yan/items/9b0235678fd804b4fe0d https://qiita.com/yoko-yan/items/9b0235678fd804b4fe0d] * Bluetooth Low Energyという仕様もあるらしく、自分のマウスはこっちだった。これに関しては[http://aimingoff.way-nifty.com/blog/2018/09/windows-linux-b.html http://aimingoff.way-nifty.com/blog/2018/09/windows-linux-b.html]を参照。割と情報が少ないので感謝。 ** <code>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Keys\xxxxxxxxxxxx</code>を見るためにpstoolsをダウンロードして<code>PsExec64 -s -i regedit</code>とする必要があることに注意。なお、セキュリティソフトによってPsexecが脅威と見なされ強制削除されてしまうときは代わりにフリーソフトのAdvancedRunを使うとよい。 ** まとめ *** CSRKをLocalSignatureKey *** LTKをLongTermKey *** EDIVをEdiv(16進→10進に変換) *** ERandをRandに(<strong>バイト</strong>(2文字のかたまり)<strong>をすべて逆順にしてから</strong>10進変換)。ちなみにこれを間違えた結果、マウスを動かすたびにbluetoothアイコンが白↔黒と高速で切り替わる謎のバグっぽい現象が起こったことがあった。 *** 小文字を大文字に変える必要はない。また、IRKをIdentityResolvingKeyに書くのも不要。 <span id="マルチデバイス対応マウスlogicool"></span> ==== マルチデバイス対応マウス(Logicool) ==== マルチデバイス対応(切り替えボタンがあるやつ)のマウス(LogicoolのM595)を使ったら、<strong>登録情報を一旦削除して再接続するごとにMacアドレスがひとつインクリメント</strong>されて困った。Linuxで接続→Winで接続→Linuxで上記の書き換え、とやったあと、フォルダ名を変更(1を足せばよいはずだが正確にはWinの情報を見るのがよい)するとうまくいった。[https://twitter.com/e9g/status/1381111849664409600 自分のツイート]にも記録あり [[Category:IT]][[Category:Windows]]{{#seo:|title={{FULLPAGENAME}} - Turgenev's Wiki}}
このページで使用されているテンプレート:
テンプレート:Mbox
(
ソースを閲覧
)
テンプレート:Outdated
(
ソースを閲覧
)
テンプレート:UnderConstruction
(
ソースを閲覧
)
デュアルブート
に戻る。