====== Partition, montage ====== ===== Déplacer son /home sur une autre partition à chaud ===== Situation: on a un seul montage sur / et on commence à être limite en place, on veut donc déplacer tout le /home sur une autre partition afin de gagner de la place sur la partition actuel. (Note: vous pouvez faire de même avec /usr, /var, /opt, /lib) Nous allons faire tout ça à chaud, c'est à dire sans liveCD ou liveUSB mais directement dans notre système d'exploitation. Avec gparted, créez votre partition et formatez la. Montez votre nouvelle partition mkdir /mnt/home mount /dev/sda6 /mnt/home Copiez vos données cp -ar /home/. /mnt/home/ Récupérez l'uuid de votre partition ls -l /dev/disk/by-uuid/ | grep sda6 ou blkid Modifiez le **/etc/fstab** et ajoutez votre nouveau point de montage #/home on /dev/sda6 UUID=79f83f9f-9851-40ee-9b8e-aac91072a868 /home ext4 errors=remount-ro 0 1 Démontez votre partition umount /mnt/home rmdir /mnt/home Remontez votre partition à partir des infos du /etc/fstab mount -a Vérifiez que votre montage est effectif mount | grep sda6 Vous devriez voir /dev/sda6 on /home type ext4 (rw,errors=remount-ro) Une fois votre partition montée sur le /home, il faut supprimer l'ancien contenu du /home mkdir /mnt/root mount --bind / /mnt/root rm -fr /mnt/root/home umount /mnt/root rmdir /mnt/root Si comme moi vous avez virer la partition windows pour en faire une partition de home et que cette partition servait comme amorçage du système, n'oubliez pas d'ajouter un drapeau de boot avec gparted et dans le doute, réinstaller grub Pour vérifier si vous avez une partition bootable, repérez l'astérisque (*) # fdisk -l Disk /dev/sda: 160.0 GB, 160041885696 bytes 255 têtes, 63 secteurs/piste, 19457 cylindres, total 312581808 secteurs Unités = secteurs de 1 * 512 = 512 octets Taille de secteur (logique / physique) : 512 octets / 512 octets taille d'E/S (minimale / optimale) : 512 octets / 512 octets Identifiant de disque : 0xdbc6dbc6 Périphérique Amorce Début Fin Blocs Id Système /dev/sda1 2048 8390655 4194304 82 partition d'échange Linux / Solaris /dev/sda2 286713854 312576704 12931425+ 5 Étendue /dev/sda3 8390656 50139135 20874240 83 Linux /dev/sda4 50139136 286711807 118286336 83 Linux /dev/sda5 311580675 312576704 498015 82 partition d'échange Linux / Solaris /dev/sda6 * 286713856 311580671 12433408 83 Linux Les entrées de la table de partitions ne sont pas dans l'ordre du disque Pour vérifier si grub est installé # debconf-show grub-pc grub-pc/kopt_extracted: false grub2/kfreebsd_cmdline: grub2/device_map_regenerated: * grub-pc/install_devices: /dev/disk/by-id/ata-MAXTOR_STM3160215AS_5RA38E18 grub-pc/postrm_purge_boot_grub: false grub-pc/install_devices_failed_upgrade: true grub-pc/disk_description: grub2/linux_cmdline: grub-pc/install_devices_empty: false grub2/kfreebsd_cmdline_default: quiet splash grub-pc/partition_description: grub-pc/install_devices_failed: false grub-pc/install_devices_disks_changed: grub2/linux_cmdline_default: quiet splash grub-pc/chainload_from_menu.lst: true grub-pc/hidden_timeout: true grub-pc/mixed_legacy_and_grub2: true grub-pc/timeout: 10 Pour savoir quel disque est concerné # l /dev/disk/by-id/ata-MAXTOR_STM3160215AS_5RA38E18 lrwxrwxrwx 1 root root 9 mai 6 15:42 /dev/disk/by-id/ata-MAXTOR_STM3160215AS_5RA38E18 -> ../../sda Pour reconfigurer et réinstaller grub # update-grub Création de grub.cfg… Found background image: /usr/share/images/desktop-base/desktop-grub.png Found linux image: /boot/vmlinuz-3.8.0-19-generic Found initrd image: /boot/initrd.img-3.8.0-19-generic Found memtest86+ image: /boot/memtest86+.bin No volume groups found fait # grub-install /dev/sda /usr/sbin/grub-bios-setup : attention : Le secteur 32 est déjà utilisé par le programme « FlexNet » ; à éviter. Ce logiciel risque de poser des problèmes d'amorçage ou autre à l'avenir. Veuillez demander à ses auteurs de ne pas sauver de données dans la piste d'amorçage. Installation terminée, sans erreur. Aucune idée du message d'erreur "flexnet" Par curiosité, vous pouvez consulter le secteur de boot # od -tx1z -Ax -N 512 /dev/sda 000000 eb 63 90 d0 bc 00 7c fb 50 07 50 1f fc be 1b 7c >.c....|.P.P....|< 000010 bf 1b 06 50 57 b9 e5 01 f3 a4 cb bd be 07 b1 04 >...PW...........< 000020 38 6e 00 7c 09 75 13 83 c5 10 e2 f4 cd 18 8b f5 >8n.|.u..........< 000030 83 c6 10 49 74 19 38 2c 74 f6 a0 b5 07 b4 03 02 >...It.8,t.......< 000040 ff 00 00 20 01 00 00 00 00 02 fa 90 90 f6 c2 80 >... ............< 000050 75 02 b2 80 ea 59 7c 00 00 31 00 80 01 00 00 00 >u....Y|..1......< 000060 00 00 00 00 ff fa 90 90 f6 c2 80 74 05 f6 c2 70 >...........t...p< 000070 74 02 b2 80 ea 79 7c 00 00 31 c0 8e d8 8e d0 bc >t....y|..1......< 000080 00 20 fb a0 64 7c 3c ff 74 02 88 c2 52 bb 17 04 >. ..d|<.t...R...< 000090 80 27 03 74 06 be 88 7d e8 17 01 be 05 7c b4 41 >.'.t...}.....|.A< 0000a0 bb aa 55 cd 13 5a 52 72 3d 81 fb 55 aa 75 37 83 >..U..ZRr=..U.u7.< 0000b0 e1 01 74 32 31 c0 89 44 04 40 88 44 ff 89 44 02 >..t21..D.@.D..D.< 0000c0 c7 04 10 00 66 8b 1e 5c 7c 66 89 5c 08 66 8b 1e >....f..\|f.\.f..< 0000d0 60 7c 66 89 5c 0c c7 44 06 00 70 b4 42 cd 13 72 >`|f.\..D..p.B..r< 0000e0 05 bb 00 70 eb 76 b4 08 cd 13 73 0d f6 c2 80 0f >...p.v....s.....< 0000f0 84 d0 00 be 93 7d e9 82 00 66 0f b6 c6 88 64 ff >.....}...f....d.< 000100 40 66 89 44 04 0f b6 d1 c1 e2 02 88 e8 88 f4 40 >@f.D...........@< 000110 89 44 08 0f b6 c2 c0 e8 02 66 89 04 66 a1 60 7c >.D.......f..f.`|< 000120 66 09 c0 75 4e 66 a1 5c 7c 66 31 d2 66 f7 34 88 >f..uNf.\|f1.f.4.< 000130 d1 31 d2 66 f7 74 04 3b 44 08 7d 37 fe c1 88 c5 >.1.f.t.;D.}7....< 000140 30 c0 c1 e8 02 08 c1 88 d0 5a 88 c6 bb 00 70 8e >0........Z....p.< 000150 c3 31 db b8 01 02 cd 13 72 1e 8c c3 60 1e b9 00 >.1......r...`...< 000160 01 8e db 31 f6 bf 00 80 8e c6 fc f3 a5 1f 61 ff >...1..........a.< 000170 26 5a 7c be 8e 7d eb 03 be 9d 7d e8 34 00 be a2 >&Z|..}....}.4...< 000180 7d e8 2e 00 cd 18 eb fe 47 52 55 42 20 00 47 65 >}.......GRUB .Ge< 000190 6f 6d 00 48 61 72 64 20 44 69 73 6b 00 52 65 61 >om.Hard Disk.Rea< 0001a0 64 00 20 45 72 72 6f 72 0d 0a 00 bb 01 00 b4 0e >d. Error........< 0001b0 cd 10 ac 3c 00 75 f4 c3 c6 db c6 db 00 00 00 20 >...<.u......... < 0001c0 21 00 82 4b 81 0a 00 08 00 00 00 00 80 00 00 fe >!..K............< 0001d0 ff ff 05 fe ff ff fe e7 16 11 c3 a2 8a 01 00 4b >...............K< 0001e0 82 0a 83 fe ff ff 00 08 80 00 00 08 7d 02 00 fe >............}...< 0001f0 ff ff 83 fe ff ff 00 10 fd 02 00 d0 19 0e 55 aa >..............U.< 000200 ===== Démonter ===== Il y a plusieurs raisons pour qu'un système de fichier ne puisse pas se démonter. (inspiré de http://oletange.blogspot.fr/2012/04/umount-device-is-busy-why.html) ==== Un répertoire ou un fichier ouvert par un process ==== Trouver le process qui lit ou écrit dans un fichier et le tuer # umount /mnt/test umount: /mnt/test: device is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1)) # lsof /mnt/test/ COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME bash 15819 tange cwd DIR 8,81 16384 6931 /mnt/test/testdir cat 24932 root 1w REG 8,81 0 6944 /mnt/test/testdir/a # kill -9 15819 24932 # lsof /mnt/test/ # umount /mnt/test ==== Le répertoire est partagé par un serveur nfs et un client nfs est en train de le parcourir ==== # umount /mnt/test umount: /mnt/test: device is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1)) # showmount -e Export list for alpha: /mnt/test 192.168.1.203 # /etc/init.d/nfs-kernel-server stop # umount /mnt/test Si la commande showmount ne fonctionne pas, vous pouvez utiliser netstat netstat -apl | grep nfs ==== Un loopback est présent dans le répertoire ==== # umount /mnt/test umount: /mnt/test: device is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1)) # losetup -a /dev/loop0: [0851]:6983 (/mnt/test/testdir/disk.img) /dev/loop1: [0851]:6986 (/mnt/test/testdir/disk2.img) # umount /mnt/test/testdir/disk.img # umount /mnt/test/testdir/disk2.img umount: /mnt/test/testdir/disk2.img: not mounted # losetup -d /dev/loop1 # umount /mnt/test ==== Un fichier de swap est présent dans le répertoire ==== # umount /mnt/test umount: /mnt/test: device is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1)) # cat /proc/swaps Filename Type Size Used Priority /mnt/test/testdir/swapfile file 95480 0 -2 # swapoff /mnt/test/testdir/swapfile # umount /mnt/test ==== Le device est mort... ==== On peut utiliser le mode paresseux (lazy) de umount # umount /mnt/test umount: /mnt/test: device is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1)) # dmesg : [75620.618404] lost page write due to I/O error on md0 [75620.618408] Buffer I/O error on device md0, logical block 16804 : [75890.015507] INFO: task cp:27736 blocked for more than 120 seconds. [75890.015513] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. [75890.015516] cp D ffff88053fdd39c0 0 27736 27734 0x00000004 ## Here I have not found a solution, so: # umount -l /mnt/test ==== Le répertoire contient un système de fichier encrypté démonté ==== normaluser$ encfs /mnt/test/dir.enc /mnt/test/dir EncFS Password: # umount /mnt/test/dir # umount /mnt/test umount: /mnt/test: device is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1)) ## Here I have not found a solution, so: # umount -l /mnt/test ===== Créer une partition dans un fichier ===== Par exemple vous n'avez plus de place dans votre /home, mais vous avez un disque en NTFS avec plein de place. Plutôt que de le partitionner, on peut créer un fichier qui contiendra un filesystem linux et monter /home sur ce fichier. Créons un fichier de 20Go dd if=/dev/zero of=linux-home.ext4 bs=1024 count=20000000 Formatons le en ext4 mke2fs -t ext4 linux-home.ext4 mke2fs 1.42.9 (4-Feb-2014) linux-home.ext4 n'est pas un périphérique spécial en mode bloc. Procéder malgré tout ? (o,n) o Étiquette de système de fichiers= Type de système d'exploitation : Linux Taille de bloc=4096 (log=2) Taille de fragment=4096 (log=2) « Stride » = 0 blocs, « Stripe width » = 0 blocs 864960 i-noeuds, 3456475 blocs 172823 blocs (5.00%) réservés pour le super utilisateur Premier bloc de données=0 Nombre maximum de blocs du système de fichiers=3539992576 106 groupes de blocs 32768 blocs par groupe, 32768 fragments par groupe 8160 i-noeuds par groupe Superblocs de secours stockés sur les blocs : 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208 Allocation des tables de groupe : complété Écriture des tables d'i-noeuds : complété Création du journal (32768 blocs) : complété Écriture des superblocs et de l'information de comptabilité du système de fichiers : complété Montez ce fichier sur un répertoire mount -o loop linux-home.ext4 /mnt/temp Copiez votre /home dedans rsync -avP /home /mnt/temp Supprimez le contenu de /home (ou pas si vous voulez garder une copie) Monter ce fichier sur votre /home umount /mnt/temp mount -o loop linux-home.ext4 /home Mettre à jour le /etc/fstab, pour cela, copier/coller les lignes du /etc/mtab qui vous intéressent dans le /etc/fstab. Utilisez la commande suivante pour vérifier que votre /etc/fstab ne contient pas d'erreur mount -fav