【Bash】Windows Subsystem for Linux【WSL】4
■ このスレッドは過去ログ倉庫に格納されています
WindowsでfileIDの調べ方がわからんかったから調べたら予想通りだった。
WSLのstat ファイル名で表示されるInode番号は、
Windowsではfsutil file queryfileid ファイル名で表示される
ファイルID(の16進数を10進数にしたもの)だった
さっきも言ったけどLinux側のi-nodeに同期とか存在しないんだよ。
Linuxがそういう管理してるんじゃないんだから。っていうかLinuxなんていねぇ。いるのはNTカーネルだけだ。
単にAPIを変換してるだけなんだから、WSLからInodeを知ろうとしたらNTFSのFileIDを返すだけの話 WSLではVolFsがinodeを管理してるからWSLからみたらinodeは普通に見える。実体がどうとかは関係ない。
WSL上ではアプリケーションはlinuxとして動くわけだから重箱の隅をつついても仕方ないし、inodeもないと動かない。 >>723
問題はそこじゃなくて「Linux側のi-nodeに"同期"させる」って言ってるところだよ。
同期だよ。同期。まるで別にLinux環境というものが存在して、そっち側でinodeを
Windowsとは別で管理していて同期を必要としていると思っているのだろう。 >>721 >>722 で言ってることが変わっていってるのが面白い。
「さっきも言ったけど」とか記憶障害っぽい感じがする。
「自分が先に思いついた」とか発言してた人かな、ひょっとして。
お大事に。 確認した。VolFsでもDrvFsでもi-nodeとしてNTFSのFileIDが表示されてる
そもそもi-nodeっていうのはext4とそのお仲間が持ってるもので
reiserfsなどにはi-nodeは存在しない。すべてのファイルシステムが持ってるものじゃないし
Linuxが管理してるものでもない(WSLにLinuxなぞ存在しないが)
だけどLinuxで必要とされるから、reiserfsのファイルシステムドライバが
i-nodeをエミュレートして表示している。
NTFSもそれに近い。NTFSのドライバはFileIDとして返すわけだが、
VolFsやDrvFsへの変換レイヤー(WSLの一部)がNTFSのFileIDをi-nodeとして見せてるだけ
VolFsやDrvFsがi-nodeを管理してるわけじゃない。単に変換してるだけ。 >>725
変わってないし、何も言い返せないならレスしなくていいよ 結局、NTFSのFileIDがi-nodeとして使われるわけだから同期なんて必要ないのが分かるだろう?
単に保存時にメタ情報を考慮しているかどうか。
いまちょっと確認したんだが、atomから保存した場合、
FileIDは変化しなかったけど実行属性は消えていた。
メモ帳やvscodeだと保存した場合FileIDは当然同じとして、実行属性は残ったまま
(だから俺はatomからvscodeに乗り換えた)
だから保存する時に以前のメタデータをどうするか?という処理が別に必要なのだろう。 どのlinuxユーザーでファイルを操作していることにするかという要件定義の問題。
NTFSのアクセス管理との整合性を破綻させない工夫が必要なのはCygwinの頃からある話で、誰でもわかる。
長々書かなくていい。 > どのlinuxユーザーでファイルを操作していることにするかという要件定義の問題。
また今までの話と全く関係ない話を始めたなw
で、その要件定義が何だって?
その先をいえや >>725
一番最初にi-node考えたのは俺やで? 分かる人にしか分からないけど、アムロ・レイの父テム・レイみたいでかわいそう。 vaxが1977年。UNIXはそれ以前だからね。
史実なら軽く還暦越えっしょ >>724
「Linux側のi-nodeに"同期"させる」ってことが理解できてないのはお前だけ。
inodeの実体がNTFSのFileIDであっても、知らないシステムが変更したIDとWSLが管理してるIDの整合性は取れない。
基本的にWSLサブシステムはWindowsのサブシステムとは互いに独立してるからカーネルは同じだとしても管理は別物。
共同で管理するには”特別な”実装が必要になる。 > 知らないシステムが変更したIDとWSLが管理してるIDの整合性は取れない。
え?なんで?w
理由言ってみ。どういう場合に整合性が取れなくなるのか
具体的な名前書いてさぁ > 基本的にWSLサブシステムはWindowsのサブシステムとは互いに独立してるからカーネルは同じだとしても管理は別物。
え?なんで?なんでサブシステムが別だと
管理まで別物になるの?
理由が全く書いてないじゃないw
ほんと適当な嘘書かないでくれないかなぁ(苦笑) > 「Linux側のi-nodeに"同期"させる」ってことが理解できてないのはお前だけ。
証拠を見せてあげよう。
「Linux側のi-nodeに"同期"させる」ってことが理解できてる人
他にいるなら、その人はどういうことなのか説明してみせて
意味不明だから、説明できる人が誰も居ないだろう i-nodeが正しく反映できてなかったらシステムコールのstat構造体を使うプログラムは全滅だよ。 linuxのアクセス権限はi-nodeから紐づいたデータなのでWindows側のFileIDでは対応できない。 i-nodeにせよFileIDにせよデータベースのキーのようなもので他のデータと紐づいていてシステムコールを通じて変更される。 >>742
これ。だからwslで編集したファイルはwindowsで触ってもよいが、逆はダメになる。
>>738
windowsが作成したファイルをwslが編集するのは非推奨になってる。それを知らないだけだろ。
>>739
マイクロカーネルの基本的な概念を知らないだけだろ。 wsl$経由でコピーするとパーミッションが維持されないな
cp相当にしといた方が良いような気が
フィードバックしとくか… >>742
> linuxのアクセス権限はi-nodeから紐づいたデータなのでWindows側のFileIDでは対応できない。
だから(Linuxじゃなくて)WSLから見えるアクセス権限は
ファイルについてる単なるメタデータなんだよ。
WSLから見えるユーザーとかあれは仮想的に作ったもので本物のアクセス権限じゃない。
WSLでrootになったとしてもWindows上から見れば、ユーザーの権限のまま
実際のアクセス権限はNTカーネルによって行われる。
だからDrvFsとかでWSL上のrootになっても書き込めないファイルが有る >>744
> windowsが作成したファイルをwslが編集するのは非推奨になってる。それを知らないだけだろ。
なっていない。そのためのDrvFsなんだし。
https://kledgeb.blogspot.com/2017/12/wsl-126-drvfslinux.html
> DrvFsとは
> 「DrvFs」は、WSL環境(Linux環境)にWindowsのボリュームをマウントし、
> LinuxからWindowsのファイルにアクセスできるようにする仕組みです。
ほんと適当な嘘ばかりつくよねw >>741
> i-nodeが正しく反映できてなかったらシステムコールのstat構造体を使うプログラムは全滅だよ。
i-nodeはFileIDを使えばいいだけ
それより同期の話は何処にいった?w
一体何を同期するのだろうか?
誰か答えてくれwww >>749
それがどうしたの?
windowsが作成したファイルをwslが編集するのは非推奨とか書いてないわけだが
文章ちゃんと読めてるか? >>751
だからそれがどうしたのって聞いてるわけだが?
そんな事知ってるし、なんのために持ち出してきたんだ?
俺に言うことじゃないだろって話。 わざわざ有志が作ったブツでマウントとかしなくてもext2/4が読み書きできる様になるのか
これは良アプデの予感 たまにでどころを覗くというのも悪くないですね。
ttps://blogs.msdn.microsoft.com/commandline/
ところで Fedora ってどうなっちゃったんでしょうw モジュラー関係で何かあるのかな... dnfが動かんからなぁ
それを解決したFedoraRemixはMS以外から出てるけども ・設定ファイルの容量は数KBに満たない
これをいじろうとすると
・必要なHDDの容量が20GB必要
・文字のエンコード関係で壊れるかもしれない不安
・20GBのインストール・アンインストール作業。時間が掛からないわけが
http://kasou-ken.seesaa.net/article/459488503.html
https://linuxfan.info/wslconfig
https://mongonta.com/f341-howto-update-under8gbdisk/
win鯖のシス管みたいなことを何が悲しくてせなあかんのかよく理解できない… >>758
そんな間違えだらけで役に立たないページ見て何がしたいの? >>759
その役に立たないページの修正情報をただで集めようと言う魂胆だろう しかし、WindowsでLinuxのソフトが普通に使えるもんな。
凄い時代になったもんだ。 >>758
・テキストエディタやロケールを扱えない自己紹介・腐った情報の掲示
・初心者向けコマンド解説
・低スぺPC Winアプデ方法
win鯖のシス管と何が関係するのか… Mecabで最新の辞書データを使おうと思ったらLinuxでビルドするしかないからねぇ。
WSLのおかげで実質的にWindowsでの作業だけで最新の辞書データを適用できるようになった。
https://github.com/neologd/mecab-ipadic-neologd >>762
> win鯖のシス管と何が関係するのか…
win鯖のシス管をパソコンのサポートと勘違いしてるんだろう。
パソコンの設定をするのは、win鯖のシス管だ! この馬鹿に理解させる必要は無いよ、無理に教化を試みて無駄な労力を使う事はない。
こいつがダメな理由を、周囲の第三者に説明するだけでいい。最後にこいつの人格批判を添えてな。
始めたのは向こう側だからな、遠慮は要らんぞ? Visual Studioからgccでユニットテストしたいとき。
WSLがあれば楽チン。 エラーが出て俺は試せなかったんだが、Windows SandboxでWSL使えるか教えてほしい。 ・WSLを有効化するには要再起動
・Windows Sandboxは再起動を要する作業はサポートされない 再起動もそうだけど、どうやってSandboxの中でWSL有効にするの?
そもそもWindowsの機能が空なんだけど…
dismもパッケージサービスコマンドが丸ごと無い 19H1リリースされても無料で使えるんだろうか。
事実上の新バージョンに見えるけど。 WSLから /mnt/c/ 配下のファイルを編集しちゃまずいのか? >>775
fgetc() の戻り値を char型変数で受け取ったに2000ペリカ ubuntu 側のgrepがwindows側のファイルを探せない(途中で探索が終わる)
とかだから違うな
2000ペリカ直ちに振り込むように ウイルス対策ソフトとかが原因では?
grep -nE ".*" で一行ずつ出力させてエラーが出る場所追いかけてみてはどうか。 Linuxというものを理解してないのか?
理解してないのはOSやコンピュータというべきか?
/mnt/cなんてちょっと特殊なファイルシステムとして
マウントされてるだけに過ぎないんだから、
意味不明なことにはならんよ。 /mnt/c/〜/rootfs/の下は見えないようになってるのね
やっぱりここを触られるのはNGなのか sjis のファイルだと、UTF-8 の文字列と一致しないから、見つからないだけ
grep -ir '赤い糸' ./*
ファイル名は自動的に、UTF-8 に変換してくれるけど UTF-8が普及する前はEUC-JPがよく使われていた。
そういう昔のEUC-JPで書かれたファイルを
UTF-8の端末からgrepしても同じように見つからない
SJISのファイルをgrepしたいなら、端末の文字コードをSJISにすればできるだろうが
デフォルトでその設定は入ってないだろうな。
nkfでも使ったほうが簡単 >>641
そもそもゲイツが潰れかけてたアップルに資金提供して蘇生させたんだがな str=`ruby -e 'print "赤い糸".encode( "CP932" )'`
grep -ir "$str" ./*
"赤い糸"という文字列を、Ruby で、sjis に変換して、
(Ruby にはデフォルトで、nkf が入っているので、Linux にはnkf を入れていないため)
それで、Windows側のsjisのファイルをgrep したら、
「バイナリファイル ./桃子.txt に一致しました」とひとまず一致したけど、
sjis のファイルは、バイナリファイルとみなされた
一致箇所が複数あるけど、何回一致したかはわからないし、一致した行もわからない
ただし、ファイル名は自動的に、UTF-8 に変換されている いい加減SJISのファイルを辞めるべきだろ
なんで日本専用の文字コードを使うんだよ?
海外対応考えてないのか? ヘッダーにcharset=Shift_JISとある5ch.netの悪口はやめたまえ そんなあなたに古典ツール nkf。今となっては速度面で見劣りするけど便利なので生き残っている。 rgとかpt使えば、grepみたいに遅くないし、utf/euc/sjis混ざってても探せるのに grepが遅いようにみえるのはディレクトリツリー検索でファイル除外できないからであって、単体ファイルの検索ならgrepのほうが40%近く速いよ。 >>790
だいたいExcelのせい
インターネットバンキングからcsvおとして解析かけるのに一旦utf-8に変換しないといけないし。 全角半角混在前提なSJISは良い文字コードなんだけどな。 5ch(2ch)するだけなら問題ないかw
つうかDATがSJISなんだよな・・・ 5chもグローバル化の波に乗るかもよ?笑
多言語板が出来そうだが、キリル文字の荒しとかでそう。
まあそしたらAA香具師とか死にそうだけど。 🐧Д가
5chの場合、全部SJISで一部の板は文字参照としてunicode文字が表示できる
キリル文字はそもそもSJISに収録されてる(unicode前から顔文字に使われてたし) ファイルアクセス超遅い
configure終わらん
virtual boxにいれたopensuseのが速い謎 virtual boxのが速いってのは
ちゃんと仮想osと共有してるホストwindowsのディレクトリで
仮想oSから作業しての話ね。
ほんと謎 そりゃWindowsと協調して動作するよりも
Windowsと切り離して動かしたほうが速いだろうなとしか
当たり前じゃね? 物にもよるけどVMだとディスクキャッシュが効いて、ホストで動かすより速いこともある。
ディスクのスピードテストしてみれば分かる。 vboxsfとしてマウントしたwindowsディレクトリだから
当然windowsとは協調動作してますよ。 だからそれ以外の話だよ
システム環境をチェックするconfigureが
共有ディレクトリを多量にアクセスするわけなかろう cofigureが遅いのは、ファイルアクセスのせいはあまり関係ないと思う。
makeはそれほど遅くない。
cygwinと同じでforkが遅いせいだとおもう。
cofigure遅いといっても、cygwinにくらべたら、wslはだいぶ速い。
でも、native linuxからするとくそといいたくなるが。 Windowsにfork相当の機能がないのがそもそもの問題なんだよな。
今のMSならカーネルにforkもしくはforkが速くなる機能を
実装してくれると思う。 >>813
なるほどそっちか。
たまにfork自体を失敗するMSYS2よりマシかもしれんけど。
となるとVMつかった方がいいな。 >>815
使ってる部分もあると思うけど、NTカーネルAPIがWindowsの
本当のAPIでそれを利用する形でWin32APIが作られてる。
それと同じレイヤーでWSLが実装されているわけだから
基本的にはWin32APIを使わずにNTカーネルAPIを呼び出してるはずだよ >>816
VMは実質二台のパソコンを使うようなもので、
ホストOSとのデータのやり取りが面倒なんだよ。
つまりWindowsのテキストエディタを使って
プログラミングしてLinuxで動かすとかね。 >>817
だったらfork相当の機能がなくても困らないじゃん。
いにしえのPosixサブシステムと同じことすればいいんだし。 >>819
> だったらfork相当の機能がなくても困らないじゃん。
なんで?
> いにしえのPosixサブシステムと同じことすればいいんだし。
だからいにしえのPOSIXサブシステムも遅かったんだろ? >>814
RtlCloneUserProcess ■ このスレッドは過去ログ倉庫に格納されています