Outils pour utilisateurs

Outils du site


articles:linux_mount

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
articles:linux_mount [2024/06/28 15:41] fraterarticles:linux_mount [2024/10/01 20:20] (Version actuelle) – [Mount windows Network Share] frater
Ligne 39: Ligne 39:
 root@hades-vm:~# mkdir /mnt/rec-img                                        # create the mounting folder (if not already present) root@hades-vm:~# mkdir /mnt/rec-img                                        # create the mounting folder (if not already present)
 root@hades-vm:~# mount -o loop,offset=67755520 recalbox.img /mnt/rec-img/  # mount second partition root@hades-vm:~# mount -o loop,offset=67755520 recalbox.img /mnt/rec-img/  # mount second partition
 +</cli>
 +
 +===== Monter une image disque qcow2 (qemu) =====
 +
 +Comme le format ''qcow2'' est un format distribuable via réseau, il est plus simple pour monter une image ''qcow2'' de passer par le device ndb (network block device).
 +
 +<WRAP center round info >
 +On Linux, network block device (''NBD'') is a network protocol that can be used to forward a block device (typically a hard disk or partition) from one machine to a second machine. As an example, a local machine can access a hard disk drive that is attached to another computer. 
 +</WRAP>
 +
 +nous allons donc monter notre image qcow2, sur un device nbd; mais avant il convient de paramétrer un peu le device que nous allons utiliser; notamment en augmentant le nombre de partitions par device à 8 (qui est par défaut à 0); par défaut nbd créé 16 device, ce qui est beaucoup; nous allons nous limiter à 2 devices.
 +
 +<cli bash>
 +root@pve02:~# modprobe nbd nbds_max=2
 +root@pve02:~# modprobe nbd max_part=8
 +root@pve02:~# ls -la  /dev/nbd*
 +brw-rw---- 1 root disk 43,  0 Jul 31 23:19 /dev/nbd0
 +brw-rw---- 1 root disk 43, 32 Jul 31 23:19 /dev/nbd1
 +</cli>
 +
 +Une fois nos devices créer, on peut y connecter notre image ''qcow2''.
 +<cli bash>
 +root@pve02:~# qemu-nbd --connect=/dev/nbd0 /mnt/pve/nfs-vmstore/images/101/vm-101-disk-0.qcow2
 +</cli>
 +pour vérifier que la connection est effective, on va lister les partitions:
 +
 +<cli bash>
 +root@pve02:~# fdisk /dev/nbd0 -l
 +Disk /dev/nbd0: 64 GiB, 68719476736 bytes, 134217728 sectors
 +Units: sectors of 1 * 512 = 512 bytes
 +Sector size (logical/physical): 512 bytes / 512 bytes
 +I/O size (minimum/optimal): 512 bytes / 512 bytes
 +Disklabel type: gpt
 +Disk identifier: 036E89F2-400F-4BB8-B1D5-58FF2850708F
 +
 +Device        Start       End   Sectors  Size Type
 +/dev/nbd0p1    2048    923647    921600  450M Windows recovery environment
 +/dev/nbd0p2  923648   1126399    202752   99M EFI System
 +/dev/nbd0p3 1126912   1159167     32256 15.8M Microsoft reserved
 +/dev/nbd0p4 1159168 134215679 133056512 63.4G Microsoft basic data
 +/dev/nbd0p5 1126400   1126911       512  256K unknown
 +
 +Partition table entries are not in disk order.
 +</cli>
 +
 +Si fdisk affiche des partitions, comme pour un disque, c'est gagné; il suffit de //monter// la/les partitions voulues via la commande ''mount'' classique:
 +
 +<cli bash>
 +root@pve02:~# mount /def/nbd0p4 /mnt/loop
 +</cli>
 +
 +on peut ensuite gérer les fichiers/dossiers normalement:
 +
 +<cli bash>
 +root@pve02:~# ls -lah /mnt/loop/
 +total 9.3G
 +dr-x------ 1 root root 4.0K Jul 28 18:11  .
 +drwxr-xr-x 4 root root 4.0K Jul 31 21:51  ..
 +dr-x------ 1 root root    0 Jun 17  2022 '$Recycle.Bin'
 +-r-------- 1 root root 381K Feb  2  2018  bootmgr
 +-r-------- 1 root root    1 Jul 16  2016  BOOTNXT
 +dr-x------ 1 root root    0 Jun 17  2022 'Documents and Settings'
 +-r-------- 1 root root 8.0G Jul 28 17:30  hiberfil.sys
 +dr-x------ 1 root root    0 Jul  3  2022  inetpub
 +-r-------- 1 root root 1.3G Jul 28 17:30  pagefile.sys
 +dr-x------ 1 root root    0 Jun 18  2022  PerfLogs
 +dr-x------ 1 root root 4.0K Jul 25 23:23  ProgramData
 +dr-x------ 1 root root 8.0K Jul 25 23:23 'Program Files'
 +dr-x------ 1 root root 4.0K Jul 26 15:06 'Program Files (x86)'
 +dr-x------ 1 root root 4.0K Jul  3  2022  Python26
 +dr-x------ 1 root root    0 Jun 17  2022  Recovery
 +dr-x------ 1 root root 4.0K Aug 21  2022 'System Volume Information'
 +dr-x------ 1 root root 4.0K Jul  3  2022  Users
 +dr-x------ 1 root root  24K May 20  2023  Windows
 +</cli>
 +
 +Pour libérer l'image, il faut démonter ''umount'' et ensuite déconnecter l'image:
 +
 +<cli bash>
 +root@pve02:~# umount /mnt/loop/
 +root@pve02:~# qemu-nbd --disconnect /dev/nbd0 
 +/dev/nbd0 disconnected
 +</cli>
 +
 +si vous n'avez pas d'autre images a traiter; vous pouvez retirer les devices : 
 +
 +<cli bash>
 +root@pve02:~# rmmod nbd
 </cli> </cli>
  
Ligne 52: Ligne 140:
  
 <cli> <cli>
-root@hades-vm:~# apt install sshfs+frater@hades-vm:~# apt install sshfs
 Reading package lists... Done Reading package lists... Done
 Building dependency tree... Done Building dependency tree... Done
Ligne 76: Ligne 164:
 Setting up fuse3 (3.14.0-4) ... Setting up fuse3 (3.14.0-4) ...
 Setting up sshfs (3.7.3-1.1) ... Setting up sshfs (3.7.3-1.1) ...
-root@hades-vm:~# modprobe fuse                 # not sure that it's still necessary+frater@hades-vm:~# modprobe fuse                 # not sure that it's still necessary
 </cli> </cli>
  
-==== mount first time ====+**mount first time**
  
 <cli> <cli>
-root@hades-vm:~# sshfs -o idmap=user,allow_other -C -p 1234 remote_ssh_frater@heaven-hades.noloop.cloud:/home/frater /mnt/remote-heaven/+frater@hades-vm:~# sshfs [-o idmap=user,allow_other] [-C] [-p 1234remote_ssh_frater@heaven-hades.noloop.cloud:/home/frater /mnt/remote-heaven/
 The authenticity of host '172.16.0.254 (172.16.0.254)' can't be established. The authenticity of host '172.16.0.254 (172.16.0.254)' can't be established.
 ED25519 key fingerprint is SHA256: C9tEvcWVV6U9GNYfwQVpRiyxwfmnEBEovmsYqShk6k5. ED25519 key fingerprint is SHA256: C9tEvcWVV6U9GNYfwQVpRiyxwfmnEBEovmsYqShk6k5.
Ligne 96: Ligne 184:
 Si aucune erreur n'est affichée, vous pourrez lire et écrire dans le dossier ''/home/frater'' du serveur, via le folder local ''/mnt/remote-heaven/''. Si aucune erreur n'est affichée, vous pourrez lire et écrire dans le dossier ''/home/frater'' du serveur, via le folder local ''/mnt/remote-heaven/''.
  
-quelques informations sur les paramètres:+**Paramètres**
  
-<code> +{{tablelayout?rowsHeaderSource=Auto&float=left}} 
--C enable compression +^  argument  ^  description                         ^ 
--o : idmap ? +|  -C        enable compression during transfert  | 
-   : allow_other : allow other users to use the mount point (ex root or other local user) +|  -o        | options to apply (see below        |
-</code>+
  
-Démonter la connexion:+**ssh options (-o)** 
 + 
 +^  option  ^  descr                                                                                                                                                                                                                                                                                               ^ 
 +| idmap    | sshfs peut convertir automatiquement les identifiants des utilisateurs, groupes locaux et distants.\\ Utilisez l'option ''idmap=none'' pas de conversion (par défaut)\\ Utilisez l'option ''idmap=user'' pour convertir les valeurs UID/GID de l'utilisateur distant par les valeurs UID/GID locale 
 + 
 +allow_other allow other users to use the mount point (ex root or other local user) 
 + 
 +**Clé publique - clé privée** 
 + 
 +Si vous désirez monter ce folder automatiquement (sans mot de passe) il est possible de préciser un couple de clés publique-privée.
  
 <cli> <cli>
-root@hades-vm:~# umount /mnt/remote-heaven/+frater@hades-vm:~# ssh-keygen 
 +</cli> 
 +Nous allons commencer par créer une clé publique, lors de la génération, ne précisez pas de "passphrase", a moins que vous ne désiriez entrer cette phrase a chaque fois; c'est un bon réflexe pour la sécurité, par contre c'est pénible pour l'automation. 
 + 
 +<cli> 
 +frater@hades-vm:~# ssh-copy-id -i /$HOME/.ssh/id_rsa remote_user_name@servername-or-ip 
 +</cli> 
 +Via cette commande, nous allons copier la clé publique sur le serveur, durant cette commande, il vous sera demandé (une dernière fois) le mot de passe de 'remote_user_name'; si vous avez préciser une passphrase, elle vous sera également demandée. 
 + 
 +**Linux Distant** 
 +on peut vérifier la bonne copie des clés, sur le "serveur" distant, il suffit de vérifier le fichier des clés autorisées: 
 + 
 +<cli> 
 +frater@hades-vm:~# cat /home/remote_user_name/.ssh/authorized_keys 
 +ssh-rsa AAAAB3NzaC1... 
 +...2ahpw== frater@hades-vm 
 +</cli> 
 + 
 +le fichier commence par un "ssh-rsa", une série de chiffres et lettre (la clé) et se termine par des informations de connexion ''user_name@remote_client'', c'est habituellement user_name@local_client_ip_or_name. 
 + 
 +**En local** 
 + 
 +pour vérifier si l'échange de clés est correctement installé, on peut faire un test via la commande suivante: 
 + 
 +<cli> 
 +ssh remote_user@servername-or-ip
 </cli> </cli>
  
 ===== Mount read-only NTFS ===== ===== Mount read-only NTFS =====
  
-==== device ====+Il est possible de monter également une partition, une image "formaté" en NTFS. 
 + 
 +**Monter une partition** 
 +<cli>
 mount -t NTFS -o ro /dev/sdxx /mnt/loop mount -t NTFS -o ro /dev/sdxx /mnt/loop
 +</cli>
  
-==== image ====+**Monter un fichier image** 
 +<cli>
 mount -t vfat -o loop,ro,noexec image.img /mnt/loop mount -t vfat -o loop,ro,noexec image.img /mnt/loop
 +</cli>
  
 +il est également possible de préciser un offset dans l'image:
 +<cli>
 mount -t vfat -o loop,ro,noexec,offset=63 image.img /mnt/loop mount -t vfat -o loop,ro,noexec,offset=63 image.img /mnt/loop
 +</cli>
  
 ===== Mount windows Network Share ===== ===== Mount windows Network Share =====
  
-==== install pre-requis: ====+**install pre-requis**
  
 <cli> <cli>
Ligne 140: Ligne 269:
 </cli> </cli>
  
-==== permanent mount: ====+**permanent mount**
  
 <cli> <cli>
Ligne 146: Ligne 275:
 </cli> </cli>
  
-ajouter cette ligne à la fin +il faut ensuite ajouter cette ligne à la fin du fichier:
 <code> <code>
-[SERVER.DOMAIN.LOCAL]/[SHARE] /mnt/[MOUNT_DIR] cifs credentials=/root/.smbcredentials,iocharset=utf8 0 0+//[SERVER.DOMAIN.LOCAL]/[SHARE] /mnt/[MOUNT_DIR] cifs credentials=/etc/.smbcredentials,iocharset=utf8 0 0
 </code> </code>
  
-==== credentials file ====+**credentials file**
  
-if you put ''.smbcredentials'' in home dir, only that user can mount the drive and view the credentials.+Lors du montage du partage, il est possible de préciser un fichier d'authentification; cette précision permet également de monter le partage lors du boot de linux.
  
-example of /root/.smbcredentials+Dans le fichier ''fstab'', on a préciser un fichier ''.smbcredentials'' (localisé dans le répertoire ''etc'' du système); il est important limiter la lecture/modifications aux seuls utilisateurs qui doivent accéder/modifier ce fichier
  
-<code>+<file ini .smbcredentials>
 username=[USERNAME] username=[USERNAME]
 password=[PASSWORD] password=[PASSWORD]
 domain=[DOMAIN_OR_WORKGROUP] domain=[DOMAIN_OR_WORKGROUP]
-</code> +</file>
- +
-don't forget to chmod rw only for root. and remove read right for other +
 ===== Mounting macOSX filesystem ===== ===== Mounting macOSX filesystem =====
  
-==== install "drivers" ====+**install "drivers"**
  
 <cli> <cli>
Ligne 174: Ligne 299:
 </cli> </cli>
  
-==== mount drive in Read Only ====+**mount drive in Read Only**
 <cli> <cli>
 root@hades-vm:~# mkdir /media/loop                                         # create folder if needed root@hades-vm:~# mkdir /media/loop                                         # create folder if needed
Ligne 180: Ligne 305:
 </cli> </cli>
  
-==== dismount ====+====== dismount ======
  
 <cli> <cli>
articles/linux_mount.1719582067.txt.gz · Dernière modification : de frater