
何日もかけてこの問題を解決しようとしましたが、まだできません。この件に関する記事はすべて読み、試せることはすべて試したと思いますが、Mac でフォーマットされた hfs+ 外付けドライブからファイルをコピーできません。まだ見逃している記事があったらごめんなさい。ジャーナリングを無効にし、見つけた hfsprogs コマンドをすべて試しましたが、それでも外付けドライブのフォルダをクリックしてホーム ディレクトリにコピーしようとすると、「フォルダ xxx は、その内容を読み取る権限がないため、処理できません」というメッセージが表示されます。その後、ターミナルからファイルをコピーすることでこの問題を解決するという記事を見つけました。ターミナルで外付けドライブ パスを使用して sudo cp -r コマンドを実行しようとすると、常に「そのようなファイルまたはディレクトリはありません」というメッセージが表示されます。他に何かアドバイスはありますか? よろしくお願いします!
答え1
古い iMac PPC G5 ロジックボードが故障したときに、同様の問題に遭遇しました。そのハードドライブには大量のデータがあり、アクセスできなくなっていたので、ハードドライブを取り外して、HDD 外付けケースに接続しました。そこから Ubuntu ボックスにファイルをコピーしようとしたところ、アクセス権エラーが発生しました。修正するためにさまざまなことを試しましたが、効果はありませんでした。残念です。次の方法で、この難局を乗り切ることができるはずです。
ターミナルを開いて次のように入力します:
sudo nautilus
使用方法グラフィカルユーザーインターフェイスウィンドウが開きます。ファイルが保存されているディレクトリに移動し、必要なファイルをコピーします。同じNautilus GUIウィンドウを使用するコピー先のディレクトリに移動し、そのディレクトリに貼り付けます。これを繰り返します。
答え2
bindfs がその答えです。これは、すでにマウントされているファイル システムを取得し、任意の uid でそのファイル システムを表示します。
sudo apt-get install bindfs
mkdir ~/myUIDdiskFoo
sudo bindfs -u $(id -u) -g $(id -g) /media/diskFoo ~/myUIDdiskFoo
答え3
あなたがこれを尋ねてから数ヶ月が経っていることは知っていますが、私はちょうどそれをうまくやり遂げたので、他の人のためにここに投稿します。まずジャーナリングをオフにする、UID と GUI を大文字で等しくします。MacOs ではユーザーは 501/20 で、Ubuntu では 1001/99 以上です。Ubuntu にユーザー ID < 1000 を表示させる必要があるので注意してください (以下で説明)。そうしないと、次回の起動時にユーザーが表示されません。
完全なガイドは次の 2 つのリンクにあります。
MacOs、Linux、Windowsを含むマルチプラットフォームガイド
デフォルトでは、OS X の最初のユーザーの UID は 501 ですが、OS X のシステム環境設定でユーザーを右クリックして詳細オプションをクリックすると、これを再確認できます。ユーザー ID が 501 と異なる場合は、以下のターミナル コマンドで 501 を他の UID に置き換えてください。
Linux を起動し (この例では Ubuntu を使用しています)、ターミナルを起動します。まず、現在ログインしているユーザーを編集したくないので、一時的なユーザーを追加します。ターミナルで次のコマンドを実行し、各コマンドの後に Enter キーを押します。
sudo useradd -d /home/tempuser -m -s /bin/bash -G admin tempuser
sudo passwd tempuser
プロンプトが表示されたら、一時ユーザーの新しいパスワードを入力します。再起動して、tempuser としてログインします。次に、ターミナルを開いて次のコマンドを入力し、各コマンドの後にもう一度 Enter キーを押します (yourusername を Linux ユーザーのユーザー名に置き換えます)。
sudo usermod --uid 501 yourusername
sudo chown -R 501:yourusername /home/yourusername
これにより、Linux ユーザーの UID が 501 に変更され、ホーム フォルダーの権限が修正されて、引き続き所有者として保持されます。これで、どの OS にログインしていても、Mac と Linux ユーザーの両方のホーム フォルダーの読み取りと書き込みができるようになります。
デフォルトでは Ubuntu は UID が 1000 未満のユーザーをリストしないので、ログイン画面を修正することもできます。これを行うには、ターミナルを開いて gksudo gedit /etc/login.defs を実行し、テキスト ファイルで UID_MIN を検索します。その値を 1000 から 501 に変更すると、再起動時にユーザーがログイン画面に表示されます。
Linux 側から OSX パーティションにアクセスするには、UID と GID が OSX UID と GID と一致している必要があります。OSX のインストール中、最初のユーザーと OSX 管理者には UID 501 と GID 20 が割り当てられます。Linux システムがインストールされると、ユーザー ID は 1000 から始まります。Linux 側から MacOS の ID と一致するようにユーザー ID を変更できます。Mac 側で UID と GID を確認するには、ログインしてターミナルを開き、「id」と入力します。応答に必要な情報が表示されます。 ログインしているユーザーの UID と GID は変更できません。Ubuntu では、管理者権限を持つ「Temp」ユーザーを作成し、「Temp」としてログインした状態で手順を実行する必要があります。'Temp' ユーザーは、sudo -i を使用して root ユーザーに変更します。次の手順は、'Root' ユーザー機能を持つシステム用に記述されており、nano がエディターです。注: ここで行っているのは ID 番号の変更のみであり、他の操作は行いません。
1. ログイン画面で、キー - control+alt+F1。コンソール モードに入ったことを確認します。
2. root または Temp ユーザーとしてログインします。
/etc/login.defs ファイルを編集します。次のように入力します。
nano /etc/login.defs
UID_MIN の値を見つけます。これを 1000 から 501 に変更します。GID_MIN の値を見つけ、これを 501 に変更します。ファイルを保存して終了します。キー – control+x。キー – y。キー – return。ファイル /etc/group を編集します。次のように入力します –
nano /etc/group
dialout:20username); と表示されている行を探し、値 20 を 99 に変更します。 (username):1000: と表示されている行を探し、それを (username):20: に変更します。ファイルを保存して終了します。nano を終了するには、Ctrl + X キーを押します。y キーを押します。Return キーを押します。
/etc/passwd ファイルを編集します。次のように入力します。
nano /etc/passwd
(username):1000:1000real name),,,,/home/(username):/bin/bash と表示されている行を見つけて、それを (username):501:20real name),,,,/home/(username):/bin/bash に変更します。ファイルを保存して終了します。nano を終了するには、キー - control+x を押します。キー - y を押します。キー - return を押します。ホーム フォルダーのファイル権限を変更します。次のように入力します。
cd /home
chown -R 501:20 (username)
コンソール モードを終了します。キー: control+alt+F7 再起動します。
これが機能せず、ファイルの 1 つを変更できなかったというメッセージが表示された場合は、システムのどこかで (ユーザー名) としてまだログインしている可能性があります。再起動して、ログイン画面で temp としてログインしてみてください。