web-dev-qa-db-ja.com

シンボリックリンクまたはジャンクションを使用すると、OneDriveで双方向同期が機能しない

シンボリックリンクとインターネット上のWindows 10の問題についてはすでにたくさん読んでいますが、今遭遇する現象については読みません。だからここに…

私の目標は、SSDドライブの別のデータパーティションにあるフォルダー(「マイミュージック」)を、シンボルリンクを介してOneDriveクラウドに双方向で同期することです。すべて正常に動作します...双方向の同期を除きます。なんとなく一方通行のまま。 :-(

データパーティションとWindowsシステムパーティションの両方にNTFSファイルシステムがあります。データパーティションには、文字(X:)が付いています。ファイルやフォルダがまだない既存のOneDriveアカウントを持っています。

私が理解している限りでは、ジャンクションを作成する方法がありますが、この場合はシンボリックリンクを作成することもできます。私が従った手順はこれです:

  1. OneDriveアカウントをオンラインで開設しました。
  2. コンピューターにOneDriveをセットアップします。
  3. システムパーティション上の私のOneDriveの標準の場所を保持します:C:\Users\<my user name>\OneDrive
  4. 管理者としてコマンドプロンプトを開きました。
  5. 次のコマンドでジャンクションを作成しました:mklink /J “C:\Users\<my user name>\OneDrive\My Music” “X:\My Music”
  6. ‘My Music’リンクは、WindowsエクスプローラーのOneDriveアイコンの下にフォルダーとして表示されます。
  7. データパーティションの‘My Music’フォルダーへのリンクが実際に機能するかどうかをテストしました。そして、それは完全に行います。
  8. OneDriveオンラインへ。 ‘My Music’フォルダーも私のOneDriveオンラインに表示されました。
  9. コンピュータから‘My Music’フォルダにランダムファイルをアップロードして、同期をテストしました。
  10. アップロードしたファイルがOneDriveオンラインに表示されます。
  11. コンピュータのエクスプローラに戻ります。アップロードされたファイルは、作成されたリンクを介してデータパーティションの‘My Music’フォルダーに表示されています。

ここまでは順調ですね。 OneDriveオンラインにアップロードしたものはすべて、データパーティションフォルダーに完全に表示されます。しかし問題は、双方向の同期が失敗することです。データパーティションの‘My Music’フォルダーで何かを変更すると、その変更は(明らかに)リンクされている同じOneDriveフォルダーに表示されますが、そこで停止します。OneDriveオンラインへの同期は行われません。どうして解決策は何ですか?

ジャンクションではなくシンボリックリンクを使用した場合もまったく同じです:mklink /D “C:\Users\<my user name>\OneDrive\My Music” “X:\My Music”

そして、私の2番目の質問は、手順を変更して最初にジャンクション(またはシンボリックリンク)を作成し、コンピューターにOneDriveをセットアップしたときに、結果がまったく逆になる可能性があるということです。したがって、その場合、作成されたリンクを介してオンラインでOneDriveにファイルを同期することは正常に機能しますが、OneDriveオンラインの[マイミュージック]フォルダーで何かを変更すると、その変更はデータパーティションのフォルダーに表示されません。繰り返しますが、それは片道です。

わかりません。誰かが答えを持っていますか?前もって感謝します!

8
MennoLN

Microsoftフォーラムのこのスレッド によると、OneDriveは2017年5月31日前後のエイリアス(ジャンクション/シンボリックリンク)パスからファイル変更イベントの通知を受け取っていたようです(応答がマークされた返信を参照)。/17/2018誰かがそれらが壊れていると報告し、返信の作者が最高の応答をマークしたことでそれを確認したようです。

NTFSには「ディレクトリハードリンク」がないと思うので、「ハードリンクを使用する」という後者の提案は機能しません。

悲しいことに、これは今壊れていると思います。

そのスレッドの回避策についていくつか言及しています- OneDriveBully OneDriveの(完全?)同期を手動で定期的にトリガーし、2つのディレクトリを2方向同期する汎用フォルダー同期ユーティリティ(2xが発生)ディスク容量と、おそらくそれが必要なときの頭痛の多く(つまり、競合の処理)。どれも嫌いです。

3
jcjcc

このトピックはかなり古いですが、問題はまだ存在しています。ソースフォルダーまたはファイルがOneDriveフォルダー内にない場合、OneDrive(元々Dropboxの直接の詐欺のようで、同じ問題があります)はシンボリックリンクされたファイルを同期しません。したがって、最も簡単な解決策は、元の(ソース)ファイルをOneDriveフォルダーに入れ、編集する他の場所にシンボリックリンクすることです。これらは2か所で編集でき、OneDriveでも引き続き同期されます。もちろん、宛先フォルダーが再度同期された場合(Dropboxなど)、そのフォルダーは同期されませんが、OneDriveとDropboxを使用している場合はかなりまれです。

mklink /J "C:\...\OneDrive\SourceFolder" "C:\SomewhereElse\HardlinkedFolderToCreate"

私のために働く。 2つのフォルダーのいずれからでもファイルを編集でき、OneDriveはそれらを正しく同期します。オンラインで編集することもできます(SharePointライブラリに同期するOneDrive for Businessを使用しますが、問題ありません)。 Dropboxでも動作するはずです。逆に必要な場合は、ソースと宛先を切り替えます。

0
frevd

SDカードが見つからないか破損している場合、デスクトップを読み込めないため、外付けドライブにデスクトップフォルダを置くと安全ではありません。デスクトップをローカルのC:ドライブのデフォルトの場所に保持し、デスクトップへのジャンクションリンクを外部ドライブのOneDriveフォルダーに配置することをお勧めします。

問題は、mklink /J外付けドライブを使用すると、期待どおりにOneDriveと同期しません。ファイルが変更されてもすぐには同期されません。 (他のレポートは以前は機能していましたが、2019年1月の時点では失敗しています)。

ただし、junctionにリンクされたデスクトップ[〜#〜] will [〜#〜]コンピューターが再起動されると同期します(またはユーザーがログオフして再びログオンしたとき)。 目的によっては、これで十分な場合があります。

たとえば、デスクトップにファイルを保存することが時々あるので、ジャンクションリンクをOneDriveフォルダー(外部SDカードにある)に配置します。私は通常、少なくとも1日に1回はコンピューターを再起動するので、デスクトップは毎日同期されます。

(OneDriveを一時停止してから一時停止を解除すると、同期も同期されますが、手動で一時停止/一時停止を解除するのは不便です)

ドキュメントの場合は、ファイルが変更されるとすぐに常に同期する必要があるため、ドキュメントフォルダーを外部SDのOneDriveに移動しました。 SDカードが見つからないか壊れている場合でも、アカウントはログインしてロードできます(ドキュメントフォルダーに依存していないため)。

Mklink /Hは外付けドライブでは使用できません。

0
johny why