問題タブ [virtual-disk]

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.

0 投票する
4 に答える
9480 参照

c# - ディスク番号から仮想ディスク ファイル名を取得しています

diskpart 内の仮想ディスクを一覧表示すると、次のようになります。

ここで興味深いのはファイル名です。ディスク番号がわかっている場合に、ファイル名 ([ファイル] 列の下) を提供する関数と同等のものを見つけようとしました。

理想的には、" \\?\PhysicalDrive2 " を指定すると、結果として " C:\Disk.vhd " が得られます。

私はすでに試しました:

  1. diskpart の使用と出力の解析 - ドキュメント化されていない形式であるため、いつでも変更される可能性があります。これは私が頼りにするものではありません。
  2. 一般的なVHD API - ディスク番号をパラメーターとして受け取る関数はありません。
  3. Microsoft.Storage.Vds.dll - 各ドライブ (Service.Providers など) を通過する列挙がありますが、ソース ファイルの名前を示すプロパティ/関数はありません。たとえば、ドライブ D: が仮想ドライブであることは確認できますが、どの .vhd ファイルが添付されているかはまだわかりません。

それがどの機能であるかについて何か考えはありますか?

0 投票する
1 に答える
1335 参照

c# - エラー: WIN7 で関数 'CreateVirtualDisk' を使用するとアクセスが拒否されました

現在、物理ディスクと仮想ディスクの両方から VHD を作成する CreateVirtualDisk 機能を試しています。エラーのため、ここで 1 週間立ち往生しています: 物理ディスクから VHD を作成しようとしたときにアクセスが拒否されました。私は常に管理者権限でプログラムを実行していたので、理論的にはうまくいくはずですが、うまくいきませんでした。ここで何がうまくいかなかったのか本当にわかりません。

ここで VHD API ドキュメントを見つけることができます: VHD

PInvoke を使用して、ライブラリ 'virtdisk.dll' からこのメソッドを呼び出しました。関数を次のように定義しました。

そして、これが私がエラーを受け取った方法です:

すべてのパラメーターを次のように設定します。

文字列変数「sourcepath」の多くの値を試してみましたが、結果は次のとおりです。

  1. 既存の仮想ディスクの絶対パス: sourcepath = @"D:\VirtualDisk\KarhuBearOS.vhd"; 成功!
  2. 物理ディスクの絶対パス: sourcepath = @"C:\"; 失敗した! アクセスが拒否されました。
  3. VSS サービスによって作成されたボリューム ID: sourcepath = @"\?\Volume{a3c3c244-8b7a-11de-a777-806e6f6e6963}\" 失敗しました!  アクセスが拒否されました。
  4. VSS サービスで作成したボリューム ID の絶対パスで sourcepath = @"\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy30\" に失敗しました!  アクセスが拒否されました。

この問題を解決する方法を教えていただければ、大変助かります。

私の精一杯、

ホアン・アン・グエン

0 投票する
2 に答える
507 参照

java - Solaris:ZFSで使用するための仮想スライス/ディスク

これは私の前の質問Solarisに少し関連しています:この質問を除いてアプリケーションのハンドラーにファイルシステムをマウントすることは別の目的であり、オープン/クローズ/ロックがないのでより簡単です/書き込み操作。

とにかく、RAMディスクやSVMスライスのような仮想スライスを作成できますか?しかし、読み取りと書き込みをアプリで実行したいと思います。

ZFSを使用して、これらの仮想スライス/ディスクを複数取得し、スナップショット付きの分散バックアップストレージ用に1つの大きなものにすることを計画しています。私はZFSが提供する圧縮とスタッキングが本当に好きです。必要に応じて、一度にこれらの仮想ディスクにアクセスするZFSのインスタンスが1つだけであることを保証できます(キャッシュの競合などを防ぐため)。1つのインスタンスがダウンした場合、それが再起動しないことを確認してから、そのZFSの別のインスタンスを開始できます。

これらのディスクを約4GB程度のチャンクに配置することを計画しています。次に、各チャンクを移動して、それらを格納する場所を決定し(もちろん、複数回ミラーリング)、ZFSにチャンクにアクセスさせて、より大きなチャンクにまとめることができます。実際に使用するためのチャンク。また、ZFSでは、必要に応じてこれらの小さなチャンクを追加して、大きなチャンクのサイズを増やすことができます。

Javaで独自のアプリを使用した場合、余分な遅延/ネットワークトラフィックが発生することは承知していますが、これはバックアップストレージ用です。本番ストレージは、関係のないまったく異なる構成です。

編集:使用可能なすべてのスペースを使用するシステムがあります。基本的に、十分なスペースがない場合は、古いスナップショットが削除され、古いスナップショット間のギャップが大きくなります。私の提案の目的は、生産設備の未使用スペースを追加費用なしで使用できるようにすることです。異なる時期に、当社の生産設備の異なるユニットに空きスペースがあります。また、私が説明しているシステムは、データにアクセスしようとするときの単一障害点を排除する必要があります。2台の大型ユニットを購入して同期を保つ必要がないことを望んでいます。アクセスポイントが2つあれば、大小のユニットを好きなように組み合わせて、データをシームレスに移動できます。

これはsysadmin関連よりもソフトウェア関連であるため、これはクロスポストです。元の質問はここにあります:https ://serverfault.com/questions/212072 。オリジナルを閉じるのは良い考えかもしれません

0 投票する
1 に答える
4582 参照

c++ - VirtualDiskAPIを使用したVHDファイルの作成

CreateVirtualDisk()のソースとしてVSSスナップショットを使用しようとしています。環境/ツールは、W7x64Ultimate上のC++VS2008SP1および7.1SDKです。

[編集]

これはWindows7x64で動作します

[編集済み]-ERROR_INVALID_PARAMETERで別の方法で失敗するようになりました。以下のパラメータは、ルートパスが「\?\ GLOBALROOT \ Device\HarddiskVolumeShadowCopy64」です。

何か案は?仮想ディスクAPIには多くのサンプルコードがないようです。

Thx ++

ジェリー。

0 投票する
2 に答える
3130 参照

c# - 仮想ディスク マウント ポイントの作成

ImDisk ライブラリと .NET ラッパーを使用して、C# アプリケーションで仮想ディスクを作成しました。ただし、デバイスを作成した後、デバイスが実際にドライブ文字として表示されるようにするには、マウント ポイントも作成する必要があるようです。マウントポイントを作成するために何が提供されるべきか完全には理解していませんが、これはライブラリよりも仮想デバイスに関連していると思います。

私の機能:

CreateMountPoint 定義:

アップデート

FormatDrive 機能:

0 投票する
0 に答える
224 参照

windows-7 - 仮想ディスクのマウント Win7 仮想ディスク SDK

Windows 7 SDK、仮想ディスク関数を使用して C++ でプログラムを作成します。仮想ディスクをマウントするとき、この新しいディスクに割り当てられた Windows の文字をどのように取得できますか?

0 投票する
1 に答える
364 参照

c# - カスタム アイコンと限られたストレージ サイズ C# を使用してフォルダーから仮想ドライブをマップする

奇妙な要件があります。

Virtual Driveフォルダーを、My Computerカスタム ドライブ アイコンを使用してマップする必要があります。また、マッピングされた仮想ドライブは、事前に定義された制限されたサイズ (XX GB など) である必要があります。

フォルダーをコンピューターの仮想ドライブとして認識してマップしましたが、ドライブのサイズをフォルダーの一種であるShortcutため制限できません。また、フォルダーを特定のサイズに制限することもできません。トピックを検索しているときに、IsolatedStorage必要なものではないものに出会いました。また、フォルダーを自分のコンピューターにマップすることはできますが、他の機能を実現できないこともわかりましDefineDosDevice(int flags, string devname, string path)た。kernel32.dll

私が探しているものを達成することは可能ですか?

0 投票する
1 に答える
927 参照

save - ブートローダーを仮想ディスクに保存します

これがおかしなことに聞こえないことを願っています

私はミニOSを作成しようとしています(誰が作成しませんでしたか?それはイスラム教徒のためにメッカを訪問するようなものです-プログラマーは彼の人生で少なくとも一度はそれをしなければなりません)

そこで、仮想マシン(Oracle VM Virtual Box)で、仮想ブート可能ISOから実行すると正常に動作する単純なブートローダーを作成しました。今のところメッセージを表示するだけです。この時点で、私は別のコードに制御を与えることになっています。それは私のOSになり始めます。これはすべて仮想光ディスクから実行されます。CDに書き込んで、i386で実行できます。

いいえ、これを本当に何かにするために、「OS」を実行したいと思います。ハードディスクから取得するので、仮想ディスク(.vmi、.vhd、.hddなど)に直接起動可能な情報(ブートローダーやロードするその他のファイル)を「書き込む」方法があるのではないかと思います。

WindowsやLinuxなどの従来のOSをISOイメージから仮想マシンにインストールすると、ブートローダーが新しいコードセクションを開始し、仮想ディスクにOSをインストールします。それは私もそれを行うべき方法です:仮想ディスクに私の起動セクションを書き込むOSのインストーラーを作成します。つまり、OSに変更を加えるたびに、OSを再インストールする必要があります。私はそれが好きではありません。起動コードを仮想ディスクファイル内に直接記述し、Virtual Boxでマシンを起動して、実行されていることを確認できるようにしたいと思います。HEXエディターで.vmiファイルを開きましたが、起動可能と見なされるコードをどこに配置すればよいかわかりません。

さて、私が何について話しているのかわからないのか、それともこれに対する解決策があるのか​​を教えてください。みんなありがとう!

0 投票する
1 に答える
3081 参照

c# - シェル名前空間拡張を作成する

アクロニスはこの仮想フォルダをどのように作成しますか。たとえば、次のExample場所にあるフォルダのバックアップを作成しましたC:\Example。バックアップの外観は次のとおりです。

ここに画像の説明を入力してください

そのファイルをダブルクリックすると、次の場所に移動できます。

ここに画像の説明を入力してください

そのフォルダを右クリックすると、ディレクトリで表示される通常のメニューが表示されません。そのディレクトリをダブルクリックすると、次のようにそのフォルダのコンテンツに移動します。

ここに画像の説明を入力してください

私が見ているコンテンツは、Windowsエクスプローラーではなくファイル内にあることに注意してください。

VirtualDir.tibを誰かに送信すると、acronis true imageがインストールされていないため、同じものを表示できなくなることを知っています。

どうすればC#で同様のことができるでしょうか?


編集

申し訳ありませんが、タイトルを更新しました。C#でchell名前空間拡張を作成するにはどうすればよいですか?