Cara-untuk: Menggabungkan folder rumah Windows, OS X, dan Linux menjadi satu (boot tiga) menggunakan ntfs-3g

2

Saya berencana untuk menggabungkan partisi home linux saya menjadi c: \ Users, jadi ketika saya boot di Windows saya memiliki semua file saya di c: \ Users \ trusktr, dan ketika saya boot ke Linux saya punya c: \ Users mount sebagai saya / home sehingga saya dapat mengakses file saya di / home / trusktr. Saya mencoba membuatnya mudah untuk berbagi file antara dua OS, termasuk dotfile, dll, sehingga hal-hal seperti vim dan bash berperilaku sama persis di OS untuk kenyamanan.

Saya pikir saya hanya akan menyalin semuanya dari linux / home ke c: \ users, yang akan mengakibatkan semuanya memiliki 777 izin secara default (saya tidak keberatan, saya satu-satunya pengguna jadi tidak ada masalah keamanan). Akankah ini berhasil?

Kemudian saya menemukan ntfg-3g.usermap. Sepertinya ini akan memungkinkan saya untuk melakukan hal-hal seperti chmod 655 /some/filedi linux dan itu akan berhasil. Saya ingin tahu apakah itu juga akan mempertahankan semua izin file saya setelah saya memetakan pengguna linux saya ke pengguna windows saya.

Jadi, masalah utama saya adalah saya menjalankan ntfs-3g.usermap dan tidak apa-apa sampai meminta saya untuk ID grup untuk dikaitkan dengan file, tapi saya tidak tahu jadi saya tekan enter, lalu sepertinya pergi salah.

Seperti apa outputnya. Beberapa pertama User :dan Group :prompt kosong karena saya menekan enter. Kemudian untuk satu saya memasukkan 1002 untuk User :prompt, kemudian setelah itu saya punya masalah saya tidak tahu bagaimana cara mengatasinya.

This tool will help you to build a mapping of Windows users
to Linux users.
Be prepared to give Linux user id (uid) and group id (gid)
for owners of files which will be selected.
"/dev/sda4" opened

* Scanning "/dev/sda4" (two levels)
* Search for "Documents and Settings" and "Users"

Under Windows login "admin"
   file "AppData" has no mapped group
By which Linux login should this file be owned ?
Enter gid of login, or just press "enter" if this file
does not belong to a user, or you do not known to whom

Group :

Under Windows login "admin"
   file "Contacts" has no mapped owner
By which Linux login should this file be owned ?
Enter uid of login, or just press "enter" if this file
does not belong to a user, or you do not known to whom

User :

Under Windows login "Administrator"
   file "AppData" has no mapped group
By which Linux login should this file be owned ?
Enter gid of login, or just press "enter" if this file
does not belong to a user, or you do not known to whom

Group :

Under Windows login "Public"
   file "AppData" has no mapped group
By which Linux login should this file be owned ?
Enter gid of login, or just press "enter" if this file
does not belong to a user, or you do not known to whom

Group :

Under Windows login "trusktr"
   file "Desktop" has no mapped owner
By which Linux login should this file be owned ?
Enter uid of login, or just press "enter" if this file
does not belong to a user, or you do not known to whom

User : 1002
* Search for other directories /

   file "CORE.xml" has no mapped group
By which Linux login should this file be owned ?
Enter gid of login, or just press "enter" if this file
does not belong to a user, or you do not known to whom

Group :
"/dev/sda4" closed

You have defined no group, this can cause problems
Do you accept defining a standard group ?
y

* Creating file UserMapping
# Generated by usermap for Linux, v 1.1.4
:1002:S-1-5-21-1991058912-2816109820-761292756-513
1002:1002:S-1-5-21-2516108075-519671461-2442963378-1001
Undecided :
   S-1-5-21-2516108075-519671461-2442963378-513
   S-1-5-21-2516108075-519671461-2442963378-1002

* You will have to move the file "UserMapping"
  to directory ".NTFS-3G" after mounting

Jadi konten yang dihasilkan setelah perintah ntfs-3g.usermap selesai adalah:

# Generated by usermap for Linux, v 1.1.4
:1002:S-1-5-21-1991058912-2816109820-761292756-513
1002:1002:S-1-5-21-2516108075-519671461-2442963378-1001

Adakah yang harus saya lakukan?

Sunting beberapa menit kemudian:

Ketika saya memasang partisi Windows NTFS di Linux, setelah mengatur file UserMappings, ls -l /mnt/windows-partition/Users/trusktr/menunjukkan bahwa kepemilikan untuk file adalah 1002: 1002. Biasanya, mereka seharusnya 1002: 100 ketika saya di linux dan saya periksa ls -l /home/trusktr/. Jadi, saya membuka file UserMappings dan saya perhatikan itu berisi 1002:1002diikuti oleh hal-hal lain, jadi saya mengubahnya ke 1002:100dan sekarang ketika saya daftar file pada partisi NTFS mereka menunjukkan kepemilikan yang benar yang cocok dengan apa yang saya miliki di Linux.

Jadi inilah tampilan file UserMappings yang diedit sekarang (perubahannya ada di awal baris kedua):

# Generated by usermap for Linux, v 1.1.4
:1002:S-1-5-21-1991058912-2816109820-761292756-513
1002:100:S-1-5-21-2516108075-519671461-2442963378-1001

Saya masih tidak yakin untuk apa baris pertama dalam file UserMappings. Dugaan saya adalah bahwa ini ada hubungannya dengan grup yang memiliki file c: \ Windows \ CORE.xml.

Jadi semoga ini berhasil! Sekarang saya akan menggabungkan semua file saya dari / home / trusktr menjadi c: \ Users \ trusktr (bersama dengan folder pengguna lain dari / home ke c: \ Users) menggunakan rsync kemudian mencoba me-mount c: \ Users as my / home in Linux ...

EDIT, 7 jam kemudian:

Saya sudah melakukannya! Saya berhasil berbagi folder rumah saya antara Windows dan Linux. Saya dapat mem-boot ke salah satu OS dan memiliki file yang sama persis di desktop. Sekarang saya harus mengujinya sebentar dan melihat apakah stabil. Saya akan memposting pembaruan tentang apa yang saya lakukan ...

EDIT, 7 bulan kemudian:

Setelah membuat pemetaan pengguna dan meletakkannya di folder /.NTFS-3G pada partisi windows, Anda dapat mem-boot Windows tanpa masalah. Untuk Linux, folder / Users sekarang akan menjadi direktori home saya. Ini dapat diatur di fstab. Pada dasarnya, suruh untuk me-mount partisi windows, lalu suruh untuk me-mount folder Users sebagai / home. Sebagai contoh:

# <file system> <dir>       <type> <options> <dump> <pass>

# mount the windows partition somewhere.
/dev/NTFS-part /mnt/windows ntfs-3g defaults         0 0

# then bindount the Users folder as /home.
/mnt/windows/Users /home none bind       0 0

EDIT, 24 bulan kemudian:

Saya sekarang melakukan langkah-langkah yang sama seperti di atas, tetapi dual boot dengan Linux dan OS X, menggunakan NTFS antara keduanya dengan ntfs-3g. Langkah selanjutnya adalah menambahkan Windows ke dalam campuran yang sama dengan yang di atas, dan memiliki folder rumah tiga-boot bersama di antara ketiga OS. :}

trusktr
sumber
3
Anda seharusnya tidak melakukan ini. NTFS tidak mendukung banyak fitur yang penting untuk dimiliki di direktori home Anda.
Ian
1
gunakan ext2 sebagai partisi rumah dan pemasangan ext2 sekarang relatif didukung oleh windows. tapi tolong jangan lakukan itu, kedua sistem menangani file secara berbeda dan itu jelas bukan ide yang baik
Kiwy
@Ian Yah saya punya semua file / home saya didukung, jadi saya pikir yang lebih buruk adalah saya akan memiliki banyak file untuk dihapus dari c: \ Pengguna tetapi saya masih bisa memulihkan file / home saya. Menurut Anda fitur mana yang akan saya perlukan yang akan hilang? Dan apa akibatnya?
trusktr
1
@ Kyiwy Pasti. Terima kasih atas wawasannya! Saya harus menguji drive untuk sementara waktu dan melihat bagaimana melakukannya. Saya memang melihat lebih lambat ls -ldi beberapa direktori. Dan ya, saya akan pastikan untuk memperbarui dengan semua detailnya. Saya berpikir untuk memasang halaman Wiki di archlinux.org juga.
trusktr
2
@MilindR saya memperbaruinya. Saya mungkin harus mengirim jawaban dengan langkah-langkahnya. Semua yang tersisa setelah melakukan pemetaan akan me-mount folder as / home di Linux.
trusktr