問題タブ [disk-partitioning]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 隠しパーティション/ボリュームにアクセスする方法
c# または c++ を使用して隠しディスク パーティション/ボリュームにアクセスするコードを作成する必要があります。しかし、この問題に関するヘルプリファレンスは見つかりませんでした。
隠しボリュームとして「ディスク文字」が含まれていないため、「C:\」と入力してアクセスすることはできません。例として、Windows に付属の「回復パーティション」があります。エクスプローラーでは見えませんが、あります。
私のアプリケーションはこれらのパーティションからデータを読み書きするので、「c:\」のような方法を見つける必要があります。
上の画像では、ボリューム 5 と 6 が隠しパーティションです。stackoverflow でこのリンクを見つけましたが、パーティションを「リスト」するだけです: https://msdn.microsoft.com/en-us/library/cc542456(v=VS.85).aspx
編集
問題は、WMI を想定どおりに使用しても、ファイルを探すときにボリュームをフィルタリングする方法が見つからないことです。例としてselect * from win32_DataFile
、マシン内のすべてのファイルを一覧表示します。
ID(または名前)を使用してボリュームをフィルタリングする方法であるべきだと思います。何かのようなもの:
または、次のようなより美しい方法:
また、パーティションとボリュームについて優れた awenser を見つけました (それらは同じものではありません) https://social.technet.microsoft.com/Forums/en-US/e7b2ddd6-f245-49ed-8fec-3b6e08e75369/how- do-i-find-the-partition-guid?forum=winservergen
EDIT2
Harry が指摘したように、"\.\Volume...." を使用することは、ファイルを回復するための良い方法でした。しかし、c# を使用して新しいファイルを作成 (作成) する方法が見つかりませんでした。これまでの最善のアプローチは、pinvoke を使用して c++ CreateFile メソッド/ハンドルを使用することです。
何かアドバイス?
c - GUID パーティション テーブル (GPT) とそのエントリを読み取る方法は?
MBR パーティション テーブルを読み取るには、オフセット を使用します0x1be
。同様に、GP(artition)T(able) エントリ (つまり、パーティションの数とそのサイズ) を読み取るためのオフセットです。
「gdisk」を使用してパーティションを作成する C プログラムを作成しています。これらのパーティションにファイルシステムを書き込む必要があります。そのため、GPT ヘッダーを読み取って、パーティションの数と割り当てられたサイズを取得する必要があります。
windows - DISKPART を使用してディスクのパーティション分割を自動化し、ユーザーにディスクまたは終了を求めるプロンプトを表示する
USB ドライブをパーティション分割してフォーマットするバッチ ファイルを作成する必要があります。これは、Windows 7 USB ブート ディスクを作成するためのものです。
DISKPART は使用されるツールであり、次のように指示を渡します。
DISKPART /s instructions.txt
私の場合、指示を次のように表示します。
次に、次のようなバッチ ファイルを作成します。
prepdisk.bat:
しかし、ユーザーにディスク ID を求める方法に行き詰まっています。また、間違ったドライブをフォーマットすると危険な場合があるため、不明な場合は終了できるようにしたいと考えています。
list - Visual Studio の一覧/パーティションの検索
USBドライブをCD(パーティションA)と通常のサムドライブ(パーティションB)のようにパーティション分割しました。CD(A) で、サム ドライブ (B) の他のパーティションを探して作成した別のビジュアル スタジオ プログラムを起動するビジュアル スタジオ プログラムを自動実行したい。
だからそうなるのです
Cd > autorun > Visual Studio アプリ > 他のパーティションを検索 > 他の Visual Studio アプリを起動します。
ドライブにドライブ文字を割り当てればこれは簡単ですが、これを多くの異なるコンピューターで使用するため、毎回行うことはできません。
したがって、これに帰着します。Visual Studio から 2 番目のパーティションを検索し、そのパーティションで別のプログラムを起動する方法はありますか?
powershell-3.0 - システムドライブのリスト
複数のブート パーティション (C および D) を持つシステムがあります。このシステムには、データ用のボリュームがいくつかあります。とにかく、Power Shell を使用してすべてのシステム パーティションを取得できますか? 私は解決策を探しましたが、あまり助けが見つかりませんでした。アイデアや出発点は大きな助けになる可能性があります
c# - c# を使用してディスク管理情報を表示 - incl. 隠しボリューム
すべての物理ディスク上のすべてのパーティション/ボリューム (非表示のシステム ボリュームも) を確認したい。ボリュームの情報には次のものが含まれている必要があります
- パーティション インデックス (例: "1")
- 名前 (例: "c:")、
- ラベル (例: "Windows")
- 容量 (例: 200GB)
私の意見では、「WMI」はこのタスクを解決するための正しい選択です。
サンプル出力は次のようになります。
ドライブ文字 (c:) をディスク ID (disk0) と組み合わせて取得するための解決策が Web でいくつか見つかりました。 これらの解決策の 1 つがここにあります。
このソリューションの問題は、隠しパーティションを無視することです。出力辞書には 4 つのエントリ (m,4 - c,1 - d,1 - f,2) のみが含まれます。
これは、「Win32_LogicalDiskToPartition」を使用して「win32_logicalDisk」と「win32_diskpartion」を組み合わせたためです。ただし、「win32_logicalDisk」には未割り当てのボリュームは含まれていません。
割り当てられていないボリュームは「win32_volume」でのみ見つかりますが、「win32_volume」と「win32_diskpartition」を組み合わせることができません。
データクラスを簡略化すると、次のようになります。
多分誰でも助けることができます:-)
powershell - PowerShell を使用してドライブにマウント ポイント フォルダー パスを割り当てる
複数のディスクでプロビジョニングされたサーバーがあります。OS用、プログラム等用、残りは空のNTFSフォルダにマウントします。
これは、GUI を介してかなり簡単です: https://technet.microsoft.com/en-us/library/cc753321.aspx
ただし、自動化する必要があるため、PowerShell でこれを行う方法を理解する必要があります。私はいくつかの行き止まりにぶつかりました:
Get-Disk、Initialize-Disk、およびNew-Partitionである程度の進歩を遂げていると思いました
ここから、次のようなことをしたいと思っていました:
しかし、それは出力を生成しません。以前にパーティションを作成したときに、ボリュームも作成されたことに気付きました。
入力オブジェクトは MSFT_StoragePool オブジェクトである必要があることがヘルプに示されているため、New-Volumeは間違ったコマンドである可能性があると考えています。
Get-PhysicalDisk、New-StoragePool、Get-StoragePoolなどのコマンドを使用して、そのパスを少し下ってみました。
しかし、この時点で無効なパラメーターのエラー メッセージが表示されます。Get-Member を使用して $Pool が MSFT_StoragePool であることを確認できたため、これは奇妙だと思います。
また、その記憶域プールを作成した後、ディスクが [ディスクの管理] から消え、Get-Disk で表示されなくなったことにも気付きました
これは、ストレージ プールが私が実際にやりたいこととはまったく異なるものであることを示していると思います。
Powershell でドライブを NTFS フォルダに割り当てるにはどうすればよいですか?
batch-file - Find current diskpart volume number in .bat
Using a .bat script on an USB drive I'd like to change it's drive letter without using 3rd party software and any requirements on the system where the USB is plugged in except that it's Windows XP or higher.
To get the current drive letter I use
set DRIVE=%~dp0
Which is E: for example
Before I can actually change E:'s drive letter, how do I find out the volume number in diskpart's volume list automaticly?
select volume E:
obviously won't work, you can only use the n for the disc number.
EDIT:
Thanks to @wOxxOm for the solution. Here is my final .bat script i now use to auto-change the drive letter of the drive the script is on to U:\
You could replace the two U's with any other drive letter you want if it should not be mounted to U:\
Just stay sure that nothing is already mounted on U:\