bash
だから私は基本的に産業用PCインストーラとして機能する一種のスクリプトを書いています。デフォルトでは、これはHDD(またはSSD)をマウントし、作業イメージテンプレートのコピーを使用して、マウントする必要があるdd
正確なデバイスと一致するように内容を変更することです。これには、ディレクトリ、ファイルの作成、構成の変更などが含まれます。
その後、削除して接続を切断し、新しいコンピュータに挿入して起動すると、新しいコンピュータを使用できます。
プロセスの一部は、特定のディレクトリへのシンボリックリンクを作成することです。例:ln -s /mnt/custom/home/user/original/path/source/subfolder /mnt/custom/home/user/symlnk
しかし推測できるように。ハードドライブをアンマウントして独自に実行した後、このシンボリックリンクは機能しません。シンボリックリンクは次のとおりです。/home/user/original/path/source/subfolder -> /mnt/custom/home/user/symlnk
/home/user/original/path/source/subfolder -> /home/user/symlnk
だから私の質問は、ドライブがアンマウントされ、起動したときにマウントされたハードドライブからこのシンボリックリンクを取得するにはどうすればよいですか?
可能ですか?
答え1
これは不可能です。すべてのシンボリックリンクは「ねえ、見つけることができます」と言うポインタです。これファイルの終わりそこ。 「「あちこちに」がマウントされなくなったパスにある場合、シンボリックリンクは次のようになるまで切断されます。
- ターゲットの場所を再インストールするか、
- 新しいファイルがターゲットの場所に配置されます。
アクセスが失われると予想される場所からファイルのコピーを取得し、アクセスが失われたときに使用できるようにするには、ファイルの実際のコピーを作成し、そのコピーをローカル(たとえばアクセス可能な場所)に保存する必要があります。アクセス可能)はい予測できないほど脆弱です)。
あなたできる理論的には、対象の場所にファイルを配置すると、マウントされたファイルシステムによってその場所がブロックされますが、実際の結果はシンボリックリンクが次を指すことです。その他ターゲットの場所がインストールされていない場合のファイルです。ファイルはマウントされたドライブへのパスを除いてすべての点で異なり、「兄弟」と「同期」のままではありません。
そう言葉をたくさんしたら、できる壊れたシンボリックリンクの生成安定ドライブがマウント解除されている場合。もしあなたなら:
$ ln -s /home/user/original/path/source/subfolder /mnt/custom/home/user/symlnk
明らかに、ドライブがマウントされているとリンクは機能しませんが、ドライブがマウントされている場合は/mnt/custom
正しい/
場所を指す必要があります。
別のオプションは、シンボリックリンクを絶対パスではなく相対パスにすることです。その後、リンクが同じ個々のパーティション内にある限り、そのパーティションがマウントされているすべての場所で機能し続ける必要があります。
答え2
答えは実際ですchroot
。私はこれをし、働いた:
chroot /mnt/custom ln -s /home/user/original/path/source/subfolder /home/user/symlnk