Ceci est une ancienne révision du document !
Création de partitions communes entre Windows et Ubuntu
Besoins
Les données des utilisateurs n'ont pas à se trouver dans la même partition que celle du système. Elles peuvent donc être dans des partitions séparées. La méthode de sécurisation des partitions de données n'est pas obligatoirement identique à celle du logiciel qui peut être facultative. Lorsqu'un disque flanche, en absence de sécurité sérieuse, il ne reste que la solution de duplication de la totalité du disque alors qu'elle ne pourrait s'appliquer que sur les données des utilisateurs. Windows refuse de lire et écrire dans les partitions EXT4. La technique du $HOME dans une partition séparée formatée en NTFS est possible mais totalement déconseillée: Trop de logiciels en s'installant vérifient que certaines permissions spécifiques sont bien présentes et refusent de s'installer ou de fonctionner. On peut espérer qu'ils réfléchiront s'ils veulent fonctionner dans l'application BASH de Windows.
Chaque utilisateur est responsable de ses données et n'a pas à connaître les données des autres utilisateurs. Ce document ne traite que des utilisateurs dans le cadre de la famille ou d'une toute petite entreprise. Le nombre d'utilisateurs maxima possible qu'il sera passible d'utiliser dans ce contexte est de 24 qui est la limite des lettres d'affectation de points de montage Windows ( A et B étant encore réservés aux disquettes de 720 Mo)
Installation de Ubuntu
Bonne nouvelle. Elle est totalement standard de la façon la plus simple. Une seule partition non chiffrée d'environ 30 Go est suffisante pour tout le monde. Cela devrait permettre d'avoir deux partitions et d'éviter des upgrades qui peuvent poser quelques problèmes.
Création d'un utilisateur Ubuntu
Le premier utilisateur est l'administrateur. Il est créé automatiquement. Il devra créer les autres utilisateurs avec ou non des droits d'administration.
La commande de création d'utilisateur normal est : La commande de création d'un utilisateur administrateur est :
Création de la partition commune de l'utilisateur
Cette partition commune n'est pas obligatoire. Elle permet de séparer complètement le logiciel des données de l'utilisateur. Cependant windows permet de changer de version en conservant les données présentes dans le C:. Il est sage, sinon obligatoire, d'avoir une partition de données stockées dans le D: spécialement si le C: est de petite taille car installé sur un SSD ou un eMMC. Cette création est à la charge de l'administrateur. Il doit allouer une partition NTFS. Les outils gnome-disk-utility ou gparted permettent cette création qui est aussi possible en ligne de commande. La création de cette partition peut être faite à tout moment bien après un démarrage de windows.
Si utilisation de windows10, l'opération de rétrécissement de windows peut être effectuée en utilisant ubuntu. Pour ceux qui effectueront une telle opération, il serait bon de noter dans les annexes cette opération réussie ou non. Pour les versions antérieures à windows10, le rétrécissement de windows est à faire par windows. Sinon quasi certitude de devoir réparer windows. Pour ceux qui utilisent encore windows XP qui n'a pas cette possibilité, c'est un peu risqué. Il est préférable de réfléchir à l'ajout d'un autre disque.
Voici son son contenu conseillé.
Un répertoire Partage permettant de mettre en commun tout ce qu'on souhaite échanger.
Un répertoire pour chaque utilisateur. Proposition: le nom de l'utilisateur, composé de neuf sous-répertoires. Les huit premiers sont des noms classiques en provenance du fichier $HOME/.config/user-dirs.dirs. Il n'y a pas de raison particulière de changer les noms. Il me semble que windows utilise les même noms.
Un neuvième répertoire est proposé sous l'un des noms suivants: Secret, Chiffrage, Protégé, Aide-Mémoire …..
Il est destiné à recevoir des données chiffrées tels que les mots de passe, les N° de compte……. Le logiciel de chiffrement doit être commun entre windows et ubuntu. La clé doit être la même. La liste de tels applications gratuites n'est pas importante. veracrypt convient en utilisant un fichier pouvant contenir des répertoires cachés.
Il doit aussi créer le point de montage de la partition et mettre à jour le fichier /etc/fstab et faire un arrêt ordinateur prise en compte L'administrateur peut aussi être utilisateur et profiter de cette possibilité.
Migration des données de l'utilisateur dans la partition
Chaque utilisateur, a sa première connexion, devra faire le nécessaire pour mettre ses propres données au bon endroit. Un script sera certainement fournit. Un copier/coller devrait suffire.
Idées pour un script général de réalisation
1 Dire que UTILISATEUR=$USER
2 Demander la taille de l'espace personnel à attribuer à cet utilisateur (en Gio).
3 Créer la partition de cet utilisateur.
4 Mettre une étiquette à cet utilisateur: Proposition DATA$UTILISATEUR
5 Mettre à jour le fichier/etc/fstab avec la ligne permettant le montage ( il faut vérifier que le montage par label au lieu de par UUID est toujours possible.)
==> Un début de codification récupéré sudo echo "UUID=$(lsblk -n -o uuid /dev/sda3) /DATA ntfs defaults,umask=007,uid=$(id -u $USER),gid=$(getent group users | awk -F ':' '{ print $3 }'),windows_names,errors=remount-ro 0 0" | sudo tee -a /etc/fstab
6 Créer le point de montage /DATA$UTILISATEUR
7 Monter la partition
8 Migrer les données déjà existantes en utilisant comme référence le fichier /home/$UTILISATEUR/.config/user-dirs.dirs en recherchant les lignes commençant par XDG et en extrayant la fin par exemple /Bureau", fabriquer le répertoire sortie, faire le move des fichiers détruire le répertoire entrée, faire le lien nouveau . En effet, des entreprises qui installent, migrent les 8 répertoires!
9 Faire à peu près la même chose pour le répertoire .thunderbird
10 Faire à peu près la même chose pour le répertoire .mozilla
11 Demander s'il y a un autre utilisateur à créer. Si réponse non: EXIT
12 Demander le nom de l'utilisateur.
13 Demander s'il doit être créé avec droits d'administration.
14 Changer la valeur de $UTILISATEUR
15 Créer l'utilisateur.
16 Retourner au point 2.
Création d'un utilisateur windows
Question Faut-il bien développer ou moins dans un contexte windows10
Création de la partition commune de l'utilisateur
Migration des données de l'utilisateur dans la partition
Il n'y a rien de spécial à indiquer sinon que plus tôt cette opération est faite, plus elle est rapide. On voit qu'elle est très souvent conseillée.
Quelques liens utiles récupérés de-ci delà.
https://www.windows8facile.fr/deplacer-bibliotheques-sur-autre-disque-partition/
https://www.mediaforma.com/windows-10-choisir-lemplacement-de-la-bibliotheque-documents/
https://sospc.name/modifier-emplacement-dossiers-personnels/
https://informatique-beaujolaise.blogspot.fr/2013/02/deplacer-mes-documents-sur-une-autre.html
La solution la moins pénible =⇒ 0X80070057 qui dit mieux? Mais a ne pas appliquer pour ce besoin, Elle transfert la totalité des fichiers utiles soit environ 2000 alors que le besoin est sur les 4 répertoires de données.
Cependant, elle décrit une façon de faire en imposant la lettre du lieu de stockage… Certainement une bonne solution au moment de la création.
Installation de la sécurité
Le principe
Lorsqu'il n'y a qu'un seul utilisateur windows et un seul windows ainsi qu'un seul utilisateur ubuntu, il n'y a rien de particulier à faire. Sinon il est nécessaire de créer une table de correspondance. Cela peut ce faire manuellement ou à l'aide d'un utilitaire. Il faut préciser la liste des partitions C: présentes dans les disques ainsi que la partition commune de données. Exemple de codification:
sudo umount -v /dev/sda4 /dev/sda13 /dev/sda25 sudo ntfs-3g.usermap /dev/sda4 /dev/sda13
Lorsque le fichier est créé, il faut le transférer dans la structure .NTFS-3G de chaque partition C: Puis remonter les partitions pour prise en compte de la sécurité.
Une réalisation
sudo ntfs-3g.usermap /dev/sda4 /dev/sda13 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 "XXXXXXX" in directory "/Users/XXXXXXX" file "Modèles" 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 : u16041 Under Windows login "XXXXXXX" in directory "/Users/XXXXXXX" file "Contacts" 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 : u16041 Under Windows login "defaultuser0" in directory "/Users/defaultuser0" file "Modèles" 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 "user1a" in directory "/Users/user1a" file "3D Objects" 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 : ^C u16041@u16041:~$ u16041@u16041:~$ sudo ntfs-3g.usermap /dev/sda4 /dev/sda13 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 "XXXXXXX" in directory "/Users/XXXXXXX" file "Modèles" 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 : u16041 Under Windows login "XXXXXXX" in directory "/Users/XXXXXXX" file "Contacts" 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 : u16041 Under Windows login "defaultuser0" in directory "/Users/defaultuser0" file "Modèles" 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 "user1a" in directory "/Users/user1a" file "3D Objects" 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 : user1a Under Windows login "user1b" in directory "/Users/user1b" file "3D Objects" 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 : user1b * Search for other directories / in directory "/Recovery/WindowsRE" file "Winre.wim" 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 : in directory "/Windows/assembly" file "NativeImages_v4.0.30319_32" 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 "/dev/sda13" opened * Scanning "/dev/sda13" (two levels) * Search for "Documents and Settings" and "Users" Under Windows login "defaultuser0" in directory "/Users/defaultuser0" file "AppData" 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 "defaultuser0" in directory "/Users/defaultuser0" 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 "XXXXXXX" in directory "/Users/XXXXXXX" file "AppData" 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 : u16041 Under Windows login "XXXXXXX" in directory "/Users/XXXXXXX" 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 : u16041 Under Windows login "XXXXXXX" in directory "/Users/XXXXXXX/Downloads" file "Ext2Fsd-0.69.1039-02.22.exe" 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 : user041 Under Windows login "XXXXXXXW" in directory "/Users/XXXXXXX/Downloads" file "Ext2Fsd-0.69.1039-02.22.exe" 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 : u16041 Under Windows login "user4b" in directory "/Users/user4b" file "AppData" 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 : user4b Under Windows login "usuer4a" in directory "/Users/usuer4a" file "AppData" 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 : user4a * Search for other directories / "/dev/sda13" closed * Creating file UserMapping # Generated by usermap for Linux, v 1.1.6 :u16041:S-1-5-21-3602143908-2238239145-2059560437-513 :u16041:S-1-5-21-927183623-3019374658-1503319323-513 :u16041:S-1-5-21-1783554288-1444674882-3479808491-513 u16041:u16041:S-1-5-21-3602143908-2238239145-2059560437-1001 user1a:user1a:S-1-5-21-3602143908-2238239145-2059560437-1002 user1b:user1b:S-1-5-21-3602143908-2238239145-2059560437-1003 u16041:u16041:S-1-5-21-927183623-3019374658-1503319323-1001 user041:user041:S-1-5-21-1783554288-1444674882-3479808491-1001 user4b:user4b:S-1-5-21-927183623-3019374658-1503319323-1003 user4a:user4a:S-1-5-21-927183623-3019374658-1503319323-1002 Undecided : S-1-5-21-3602143908-2238239145-2059560437-1000 S-1-5-21-397955417-626881126-188441444-513 S-1-5-21-1132788806-224758879-1159741405-513 S-1-5-21-927183623-3019374658-1503319323-1000 * You will have to move the file "UserMapping" to directory ".NTFS-3G" after mounting u16041@u16041:~$
Un constat
Les nouveaux répertoires de windows10 ne sont pas encore intégrés au logiciel mais on peut choisir
Lorsqu'il existe plusieurs windows, faire très attention au choix des utilisateurs.
sudo cat UserMapping # Generated by usermap for Linux, v 1.1.6 :u16041:S-1-5-21-3602143908-2238239145-2059560437-513 :u16041:S-1-5-21-927183623-3019374658-1503319323-513 :u16041:S-1-5-21-1783554288-1444674882-3479808491-513 u16041:u16041:S-1-5-21-3602143908-2238239145-2059560437-1001 user1a:user1a:S-1-5-21-3602143908-2238239145-2059560437-1002 user1b:user1b:S-1-5-21-3602143908-2238239145-2059560437-1003 u16041:u16041:S-1-5-21-927183623-3019374658-1503319323-1001 user041:user041:S-1-5-21-1783554288-1444674882-3479808491-1001 user4b:user4b:S-1-5-21-927183623-3019374658-1503319323-1003 user4a:user4a:S-1-5-21-927183623-3019374658-1503319323-1002 u16041@u16041:~$
Le transfert du fichier
Exemple
sudo mount -v /dev/sda4 sudo mount -v /dev/sda13 sudo mount -v /dev/sda25 sudo mkdir /DATA4/.NTFS-3G sudo mkdir /DATA13/.NTFS-3G sudo mkdir /DATA25/.NTFS-3G sudo cp -v UserMapping /DATA4/.NTFS-3G sudo cp -v UserMapping /DATA13/.NTFS-3G sudo cp -v UserMapping /DATA/.NTFS-3G sudo umount -v /dev/sda4 /dev/sda13 /dev/sda25 sudo mount -v /dev/sda4 sudo mount -v /dev/sda13 sudo mount -v /dev/sda25
La vison des partitions
Pour utilisateur user1a
user1a@u16041:~$ cd /DATA4 user1a@u16041:/DATA4$ ls -als total 3717713 8 drwxrwxrwx 1 root root 8192 mai 19 13:41 . 32 drwxrwxrwx 41 root root 28672 mai 12 13:43 .. 376 -rwxr-xr-x 1 root root 384322 juil. 16 2016 bootmgr 1 -rwxr-xr-x 1 root root 1 juil. 16 2016 BOOTNXT 0 drwx------ 1 root root 0 févr. 26 11:29 Config.Msi 0 lrwxrwxrwx 2 root root 60 févr. 22 2017 Documents and Settings -> /DATA4/Users 0 drwxrwxrwx 1 root u16041 0 janv. 11 14:49 $GetCurrent 2472048 -rwx------ 1 root root 2531377152 mai 20 09:40 hiberfil.sys 0 drwxrwxrwx 1 root root 0 mai 17 15:18 Intel 0 drwxrwxrwx 1 root root 0 mai 10 18:39 .NTFS-3G 983040 -rwx------ 1 root root 1006632960 mai 20 09:40 pagefile.sys 0 drwx------ 1 root root 0 déc. 14 02:40 PerfLogs 4 drwxrwxrwx 1 root root 4096 févr. 26 10:00 ProgramData 8 drwxr-xr-x 1 root root 8192 févr. 26 11:26 Program Files 8 drwxr-xr-x 1 root root 8192 mai 16 10:38 Program Files (x86) 0 drwx------ 1 root root 0 janv. 11 14:30 Recovery 0 -rwxrwxrwx 1 root root 0 déc. 23 13:57 Recovery.txt 4 drwxrwxrwx 1 root root 4096 mai 10 13:08 $Recycle.Bin 262144 -rwx------ 1 root root 268435456 mai 20 09:40 swapfile.sys 4 drwx------ 1 root root 4096 févr. 22 2017 System Volume Information 4 drwxr-xr-x 1 root root 4096 mai 10 11:24 Users 24 drwxr-xr-x 1 root root 24576 mai 16 10:33 Windows 8 drwxr-xr-x 1 root u16041 8192 janv. 11 14:51 Windows10Upgrade ..... user1a@u16041:/DATA4$ cd Recovery bash: cd: Recovery: Permission non accordée user1a@u16041:/DATA4$ cd Intel user1a@u16041:/DATA4/Intel$ touch titi user1a@u16041:/DATA4/Intel$ cd ../Users user1a@u16041:/DATA4/Users$ ls All Users Bougron Default Default User defaultuser0 desktop.ini Public user1a user1b user1a@u16041:/DATA4/Users$ cd user1b bash: cd: user1b: Permission non accordée user1a@u16041:/DATA4/Users$ cd XXXXX bash: cd: Bougron: Permission non accordée user1a@u16041:/DATA4/Users$ cd user1a user1a@u16041:/DATA4/Users/user1a$ ls 3D Objects Links NTUSER.DAT OneDrive AppData Local Settings NTUSER.DAT{9e267b58-f6d2-11e7-a381-089e01b71c5d}.TM.blf Recent Application Data Menu Démarrer NTUSER.DAT{9e267b58-f6d2-11e7-a381-089e01b71c5d}.TMContainer00000000000000000001.regtrans-ms Saved Games Contacts Mes documents NTUSER.DAT{9e267b58-f6d2-11e7-a381-089e01b71c5d}.TMContainer00000000000000000002.regtrans-ms Searches Cookies MicrosoftEdgeBackups ntuser.dat.LOG1 SendTo Favorites Modèles ntuser.dat.LOG2 Voisinage d'impression IntelGraphicsProfiles NouveaudossierA ntuser.ini Voisinage réseau user1a@u16041:/DATA4/Users/user1a$ echo titi titi user1a@u16041:/DATA4/Users/user1a$
Notons simplement que cela fonctionne sauf pour les répertoires n'ayant aucun rapport avec windows. Un contrôle sera donc nécessaire. La corbeille fonctionne.
Migration des données de ubuntu
Il faudrait ajouter la récupération des noms des répertoires et un contrôle que ces répertoires n'ont déjà pas un lien. Script en cours de test. (L'oubli d'un * a supprimé trop de fichiers).
#!/bin/bash UTILISATEUR=$USER #### Nom de l’utilisateur de DATA au cas où il ne serait pas identique à $USER UTILISATEUR=User01a #### Nom de l’utilisateur de DATA au cas où il ne serait pas identique à $USER for i in Bureau Téléchargements Modèles Public Documents Musique Images Vidéos do echo "Début de traitement de $i " mv -nv $HOME/$i/* /DATA/$UTILISATEUR/$i rm -Rv $HOME/$i ln -s /DATA/$UTILISATEUR/$i $HOME/$i ls -ls $HOME/$i done mkdir /DATA/$UTILISATEUR/Mozilla mv -nv $HOME/.mozilla/* /DATA/$UTILISATEUR/Mozilla rm -Rv $HOME/.mozilla ln -s /DATA/$UTILISATEUR/Mozilla $HOME/.mozilla
Documents à l'origine de cette documentation.
Trois méthodes proposées
Le besoin de faire ce document est né de cette discussion mettant en évidences trois méthodes proposées simultanément. Un choix semble être fait. Ce tutoriel a pour simple but de reporter à un seul endroit la méthode qui semble la meilleure afin que tout le monde puisse s'y référer et surtout la faire vivre.
Faire à l'identique de ubuntu
C'est évidemment la bonne solution. Cependant les permissions gérées dans les partitions ext4 et dans les partitions NTFS sont un peu différentes. Une étude probablement abandonnée n'a pas réussit à trouver la solution à l'identique de ubuntu. Le constat est qu'il est nécessaire actuellement de faire une partition par utilisateur.
La documentation NTFS-3G
Les options de montage
Voir un document en langue étrangère Mount
Le SID Windows
Voir une définition
Voir comment récupérer le SID
La commande suivante est bien suffisante.
wmic useraccount get name , sid
L'association des utilisateurs
Le principe brièvement décrit est le suivant:
Définition d'un utilisateur Ubuntu =⇒ /etc/passwd ⇒ GID à partir de 1000 par pas d'incrémentation de 1.
Définition d'un utilisateur Windows ⇒ Base de registres ⇒ SID composé de clé machine + N° à partir de 1000 par pas d'incrémentation de 1.
Les partitions contenant des C: doivent être démontées et fournies en entrée de la commande de fabrication. Exemple <code>
L'outil d'assistance à la fabrication.
Est disponible sous windows ou sous Ubuntu
Un forum ubuntu
Lire cette discussion. mais il en existe certainement d'autres.