Outils pour utilisateurs

Outils du site


blog

Notes partitionnement

Voir Partitionnement - Aide mémoire : parted, fdisk, sfdisk, gdisk, sgdisk

parted

parted --script -a optimal /dev/device mklabel gpt mkpart primary 0% 100%
parted --script -a optimal /dev/device rm 1
luns=$(ls | grep -v control)
for i in $luns
do
  parted -a optimal -s --  /dev/mapper/$i mklabel gpt mkpart primary xfs 0% 100%
done

https://pure-storage-openstack-docs.readthedocs.io/en/wallaby/swift/section_swift-partitioning.html

You can verify that the partition was successfully created and is properly aligned by using the parted command:

# parted /dev/mapper/3624a937043be47c12334399b00016d73 align-check optimal 1
1 aligned

sgdisk (compatible GPT)

Backup the table of /dev/sda:

sgdisk --backup=table /dev/sda

Restore the table to the new disk:

sgdisk --load-backup=table /dev/sdb

Backup and Restore from /dev/sda to /dev/sdb in one command:

sgdisk -R /dev/sdb /dev/sda

Finally randomize the GUID of all partitions on the disk:

sgdisk -G /dev/sdb

Method for MBR-Tables Copy table from /dev/sda to /dev/sdb:

sfdisk -d /dev/sda | sfdisk /dev/sdb

(Optional)If you don’t see the partitions, read it again:

sfdisk -R /dev/sdb
2025/03/24 15:06

La commande dd

Introduction

Extrait de la page de man de dd :

“dd copie un fichier (par défaut, depuis l'entrée standard vers la sortie standard) en permettant de sélectionner la taille de bloc, et d'effectuer des conversions.”

Utilisée fréquemment, la commande dd est très simple d'utilisation, très puissante et… tout aussi dangereuse. Vérifiez toujours bien les commandes deux (trois ?) fois avant de les lancer.

LES COMMANDES QUI SUIVENT PEUVENT VOUS FAIRE PERDRE TOUTES LES INFORMATIONS CONTENUES DANS VOTRE MACHINE SI ELLES NE SONT PAS CONVENABLEMENT UTILISÉES. VOUS ÊTES PRÉVENUS!

NOTE: Pour pouvoir être copiée, déplacée, agrandie ou réduite, la partition source doit au préalable être “démountée” du système (voir “umount”).

Syntaxe

La syntaxe d'une ligne de commandes utilisant dd se présente généralement sous cette forme:

dd if=<source> of=<cible> bs=<taille des blocs> skip= seek= conv=<conversion>

Arguments :

  1. source = D'où proviennent les données à copier;
  2. cible = où seront copiées les données traitées par la commande;
  3. bs = taille des blocs, de puissance 2, par défaut égale à 512 octets;
  4. skip = Ignorer le nombre indiqué de blocs (dont la taille est fournie par ibs) au début de la lecture;
  5. seek = Ignorer le nombre indiqué de blocs (dont la taille est fournie par ibs) au début de l'écriture.
  6. conv = Modifier le fichier comme indiqué par l'argument conversion, qui peut prendre les valeurs suivantes (pas d'espace autour des virgules lorsque plusieurs arguments sont fournis) :
ascii, ebcdic, ibm, block, unblock, lcase, ucase, swab, noerror, notrunc, sync.
Utilisation

Copier une partition d'un disque dur vers un partition d'un autre disque dur

Copie l'intégralité de la partition sda9 vers la partition sdb1 et ne pas interrompre la copie en cas d'erreurs.

dd if=/dev/sda9 of=/dev/sdb1 bs=4096 conv=noerror

noerror : Continuer même en cas d'erreur.

Remarque au sujet de l'UUID.

Copier une partition autre vers une partition copie aussi l'UUID puisqu'il est inscrit dans la partition même.\ Vous vous retrouveriez alors avec deux partitions qui ont le même UUID…

# blkid
...
/dev/sda9: UUID="a5355774-2e6b-45fe-8993-0f23602c1616" TYPE="ext2"
/dev/sdb1: UUID="a5355774-2e6b-45fe-8993-0f23602c1616" TYPE="ext2"

Il faut alors modifier l'UUID de la partition copiée pour ne pas avoir de conflit si la partition originale et sa copie sont accessibles au système :

# tune2fs -U random /dev/sdb1
# blkid
/dev/sda9: UUID="a5355774-2e6b-45fe-8993-0f23602c1616" TYPE="ext2"
/dev/sdb1: UUID="75aa7a37-d2a2-4cf4-88f8-616067c7a684" TYPE="ext2"
Cloner un disque dur en entier

Copie de l'intégralité (y compris le mbr) du disque sdg vers le disque sdh:

dd if=/dev/sdg of=/dev/sdh conv=noerror
Réaliser un fichier image ISO copie d'un CD-ROM
dd if=/dev/sr0 of=/home/laurent/cd.iso bs=2048

Pour monter le fichier image ISO obtenu :

mkdir /mnt/cd
mount -o loop -t iso9660 cd.iso /mnt/cd

Montage permanent par /etc/fstab :

/chemin_vers_iso/cd.iso   /mnt/cd  iso9660 rw,user,noauto 0 0
Effacer un lecteur

ATTENTION, COMMANDE DANGEREUSE!

Pour les paranos… La commande suivante remplie 7 fois de suite un périphérique avec des données aléatoires. Autant dire qu'il ne sera plus possible de récupérer quoi que ce soit sur ce périphérique…

for n in $(seq 7);
do 
  dd if=/dev/urandom of=/dev/sdc bs=8b;
done
Sauvegarder le chargeur de boot d'un disque dur
dd if=/dev/sda of=ChrgBoot.dd bs=440 count=1

Cette commande copiera les 440 premiers octets du disque dur dans un fichier.

Sauvegarder le MBR d'un disque dur
dd if=/dev/sda of=MBR.dd bs=512 count=1

Cette commande copiera les 512 premiers octets du disque dur dans un fichier.

Sauvegarder la table des partitions d'un disque dur
dd if=/dev/sda of=TablePart.dd bs=64 count=1 skip=446

Cette commande copiera les 512 premiers octets du disque dur dans un fichier.

pour restaurer la table de partition

dd if=TablePart.dd of=/dev/sda bs=64 count=1 seek=446

Cette commande copiera la table des partitions contenue dans le fichier TablePart.dd sur le disque /dev/sda

Sauvegarder un disque dur ou une partition dans une image compressée

La ligne de commandes suivante permet de créer un fichier compressé, qui pourra être utilisé pour restaurer la partition “n” (“n” est une valeur numérique) du disque “/dev/sdX” (“X” est une lettre alphabétique). (peu importe le type de partition)

#dd if=/dev/sdXn | gzip -c > /media/suportamovible/fichierimage_part_dd.gz
dd if=/dev/sdXn | pigz -c > /media/suportamovible/fichierimage_part_dd.gz
 
# Avec taux de compression adapté automatiquement
sudo dd if=/dev/sda | pv | zstd --adapt > image.dd.zst
zstdcat image.dd.zst | pv | sudo dd of=/dev/sda )

Dans cette ligne de commandes, le programme “dd” lit par blocs (de 512 octets par défaut) le contenu de la partition “n” du disque “X” (/dev/sdXn). Le flux de sortie du programme “dd” est connecté par un tube anonyme (|) au flux d'entrée du programme “gzip”. “gzip” va compresser ce flux et le retourner par son flux de sortie (option “c”) qui sera re-dirigé par “>” vers le fichier “/media/suportamovible/fichierimage_part_dd.gz”. Si le fichier “/media/suportamovible/fichierimage_part_dd.gz” existait avant l'exécution de cette ligne de commandes, il serait “écrasé”.

Pour restaurer la partition ainsi sauvegardée faire :

#gzip -cd /media/suportamovible/fichierimage_part_dd.gz | dd of=/dev/sdXn
pigz -cd /media/suportamovible/fichierimage_part_dd.gz | dd of=/dev/sdXn

Dans cette commande, le programme “gzip” dé-compresse (option “d”) le fichier “/media/suportamovible/fichierimage_part_dd.gz”. Le flux de sortie du programme “gzip” (option “c”) est connecté à un tube anonyme (|) qui est connecté à l'entrée du programme “dd”. La sortie (of=) du programme “dd” se fera sur la partition “n” du disque “X” (/dev/sdXn), et le contenu de cette partition sera écrasé et remplacé par le contenu du fichier sauvegardé par la ligne de commandes précédente.

Autres

zip -r - . | dd of=/dev/nrst0 obs=16k

Autres commandes

Clean up partition table and MBR
sgdisk --zap-all -- /dev/sdX
2025/03/24 15:06

Notes parallel multithread multicore process shell

Commande xargs

Autres

$ ps -p 5369 -L -o pid,tid,psr,pcpu
  PID   TID PSR %CPU
 5369  5369   0  0.1
 5369  5371   1  0.0
 5369  5372   2  0.0
 5369  5373   3  0.0
 5369  5374   4  0.0
 5369  5375   5  0.0
 5369  5376   6  0.0
 5369  5377   7  0.0
taskset 0xffff R --slave -f parglm.R
taskset 0xffff R
2025/03/24 15:06

Notes paquets makeself

/home/siber/goodsync/packages/generic-sfx/megastep-makeself-be1c982/makeself.sh \
    "--nomd5" \
    "--nocrc" \
    "/home/siber/goodsync/packages/generic-sfx/package-files" \
    "goodsync-linux-x86_64-release.run" \
    "GoodServer for Unix/Linux version 10.5.9.9" \
    "./install-script.sh"

Script run after extraction: ./install-script.sh

2025/03/24 15:06

Boot systemd boot non-graphique

Source : Non-graphical boot with SystemD

Voir aussi https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/sect-Managing_Services_with_systemd-Targets.html

Testé sur Debian 8 Jessie

Open a terminal and (as root) run:

systemctl set-default multi-user.target

ou avec --force

systemctl set-default -f multi-user.target

Retour arrière - réactivation mode graphique

systemctl set-default graphical.target

Vérif

systemctl get-default

Boot paramètre noyaux Linux

parameter to your kernel boot line

systemd.unit=multi-user.target
Ajout nouvelle entrée au grub sous Debian

Sous Debian

vimdiff /boot/grub/grub.cfg /boot/grub/custom.cfg

/boot/grub/custom.cfg

menuentry 'Debian GNU/Linux nographic' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-816ff92d-1a71-4f82-b009-a5ef6f469a25' {
        load_video
        insmod gzio
        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  82c94e9f-f7c8-40dc-9e94-9d0afcac7fe6
        else
          search --no-floppy --fs-uuid --set=root 82c94e9f-f7c8-40dc-9e94-9d0afcac7fe6
        fi
        echo    'Loading Linux 3.16.0-4-amd64 ...'
        linux   /vmlinuz-3.16.0-4-amd64 root=/dev/mapper/vgos-root ro systemd.unit=multi-user.target
        echo    'Loading initial ramdisk ...'
        initrd  /initrd.img-3.16.0-4-amd64
}
cat /boot/grub/grub.cfg | sed -ne '/^menuentry/,/}/p' | sed -e 's/\(linux.*\) quiet/\1 systemd.unit=multi-user.target/' | sed -e 's%Debian GNU/Linux%Debian GNU/Linux NonGraphique%' > /boot/grub/custom.cfg

Changer le runlevel / target maintenant

# runlevel
systemctl list-units --type target
# telinit 3
# init 3
systemctl isolate multi-user.target
 
# init 5
systemctl isolate graphical.target

Autres

#unlink /etc/systemd/system/default.target
#ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
systemctl set-default multi-user.target  
2025/03/24 15:06
blog.txt · Dernière modification : de 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki