Macのディスクのパーティションテーブルに微妙な変更を加えようとしています。特に、パーティションの種類を変更する必要があります。diskutil
これをサポートしていないので、使用できません。ディスクが使用されていない場合は、 (たとえば、変更されたgpt
コマンドラインユーティリティを介して)正常に動作します。そうである場合、デバイスファイルを開くときに失敗します。
int fd = open("/dev/disk1", O_RDWR);
fd
は-1でerrno
、エラー「リソースビジー」を示します。
別のドライブからマシンを再起動し、そこから元のディスクを変更してから、再起動できることに気付きました。ただし、これは、アプリケーション内から自動化/信頼できるものにするのは簡単ではありません。さらに、diskutil
ライブデバイスのパーティションテーブルの編集に問題はなく、bootcampインストーラーもありません。
これを行うための既知の方法はありますか?最悪の場合、私はカーネルでそれを試みることができますが、kextsは実際には一回限りのことを行うように設計されておらず、私がする必要があるのはユーザースペースでは非常に概念的に単純ですが、カーネルでは非常に難しいです。
何か案は?
注:私はすべてをsudo
で実行しているので、権限の問題ではないはずです。