Outils pour utilisateurs

Outils du site


blog

LVM - migrer les systèmes de fichiers avec la partition racine

Exemple avec avec RedHat / Amazon Linux

Partition /var /var/log (Hors racine /)

Arrets des services pouvant accéder à /var et /var/log

systemctl stop systemd-journald*
systemctl stop nfs-client*
systemctl stop rpc*
systemctl stop mariadb.service
systemctl stop smb.service
systemctl stop atd.service
systemctl stop acpid.service
systemctl stop gssproxy.service
systemctl stop atop.service
systemctl stop irqbalance.service
systemctl stop chronyd.service
systemctl stop postfix.service
systemctl stop rsyslog.service
pvcreate /dev/xvdk
vgcreate vg_os /dev/xvdk
 
lvcreate -n var -L 1G vg_os
lvcreate -n log -L 1G vg_os
mkfs.xfs /dev/vg_os/var
mkfs.xfs /dev/vg_os/log
 
mkdir /var/log2
mount /dev/vg_os/log /var/log2
rsync -ax /var/log/ /var/log2/
rm /var/log -rf
umount /var/log2/
rmdir /var/log2/
 
mkdir /var2
mount /dev/vg_os/var /var2
rsync -ax --exclude='/log/' /var/ /var2/
rm /var -rf
umount /var2
rmdir /var2
 
mkdir /var
echo "/dev/mapper/vg_os-var  /var  xfs   defaults,noatime   0 2" >> /etc/fstab
mount -a
 
mkdir /var/log
echo "/dev/mapper/vg_os-log  /var/log  xfs   defaults,noatime   0 2" >> /etc/fstab
mount -a
 
restorecon -R /var
Conf /tmp sur /var/tmp
## /tmp
rsync -ax /tmp/ /var/tmp/
echo "/var/tmp /tmp    none bind 0 0"  >> /etc/fstab
rm -rf /tmp
mkdir /tmp
chmod 1777 /tmp
mount -a
Au tour de la swap
lvcreate -n swap -L 1G vg_os
mkswap /dev/vg_os/swap
echo "/dev/mapper/vg_os-swap none            swap    sw              0       0" >> /etc/fstab
swapon -a
Terminer par
touch /.autorelabel

Partition racine

Voir https://www.linuxsysadmins.com/migrate-from-single-partition-boot-device-to-lvm-in-centos7/

Chroot

mkdir /newroot
lvcreate -n root -L 3G vg_os
mkfs.xfs /dev/vg_os/root
mount /dev/vg_os/root /newroot/
 
rsync -ax --exclude "/newroot/" --exclude "/boot/" / /newroot/
mkdir /newroot/boot
rsync -ax /boot/ /
rm /boot -rf
mkdir /boot
mount -o bind / /newroot/boot/
 
mount -o bind /dev/ /newroot/dev/
mount -o bind /sys/ /newroot/sys/
mount -o bind /proc/ /newroot/proc/
#mount -t proc proc /newroot/proc/
mount -o bind /run /newroot/run/
mount -t devpts devpts /newroot/dev/pts
mount -o bind /var/ /newroot/var/
mount -o bind /var/log /newroot/var/log/
mount -o bind /tmp /newroot/tmp
 
chroot /newroot/
 
cp -p /etc/fstab /etc/fstab.orig
cp -p /etc/default/grub /etc/default/grub.orig

/etc/fstab

#UUID=a1e1011e-e38f-408e-878b-fed395b47ad6     /           xfs    defaults,noatime  1   1
/dev/mapper/vg_os-root                          /           xfs    defaults,noatime  1   1
UUID=a1e1011e-e38f-408e-878b-fed395b47ad6     /boot           xfs    defaults,noatime  1   1
/dev/mapper/vg_os-var  /var  xfs   defaults,noatime   0 2
/dev/mapper/vg_os-log  /var/log  xfs   defaults,noatime   0 2
/dev/mapper/vg_os-swap none            swap    sw              0       0
/var/tmp /tmp    none bind 0 0

Conf grub et /boot

sed -i '1i/dev/mapper/vg_os-root                          /           xfs    defaults,noatime  1   1' /etc/fstab
sed -ie 's|^UUID=\(.*\)/\(.*\)|UUID=\1/boot\2|' /etc/fstab

/etc/default/grub

#GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8 net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 rd.emergency=poweroff rd.shell=0"
GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 rd.emergency=poweroff rd.shell=0 console=ttyS0,115200n8 console=tty0 rd.lvm.lv=vg_os/root"

Ajouter rd.lvm.lv=vg_os/root et si SELinux changer l'ordre console=ttyS0,115200n8 console=tty0

sed -ie 's/^GRUB_CMDLINE_LINUX_DEFAULT/#&/' /etc/default/grub
echo >> /etc/default/grub
echo 'GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 rd.emergency=poweroff rd.shell=0 console=ttyS0,115200n8 console=tty0 rd.lvm.lv=vg_os/root"' >> /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg
#dracut -f -v /boot/initramfs-4.14.123-111.109.amzn2.x86_64.img
dracut -f -v /boot/initramfs-*.img
grub2-install --recheck /dev/xvda
touch /.autorelabel
exit
/sbin/reboot -f
2025/03/24 15:06

Lsof - Mettre fin à tous les processus d'un utilisateur

Voir http://www.thegeekstuff.com/2012/08/lsof-command-examples/

pkill -u marc

Ou

kill $(lsof -t -u marc)

PS :
lsof peut remplacer netstat lsfd peut remplacer lsof

2025/03/24 15:06

Ansible user - retirer un utilisateur d'un groupe secondaire - remove user from a secondary group - unappend

Exemple - retirer tous les utilisateurs du groupe “docker”

- name: get all user into docker group
  shell: |
    awk -F':' '/^docker:/ {print $4}' /etc/group
  register: users_intogroup_docker
  changed_when: False

- name: no user into docker group
  command: gpasswd -d {{ item }} docker
  with_items: "{{ users_intogroup_docker.stdout.split(',') }}"
  when: not item in [""]
2025/03/24 15:06

Logique - Algèbre de Boole

Voir :

Ne pas confondre la logique booléenne avec la logique aristotélicienne / scolastique !

En Python

En bash

combine (moreutils)
echo aaa > a.txt
echo bbb > b.txt
echo common | tee a.txt b.txt
$ cat a.txt
aaa
common

$ cat b.txt
bbb
common
$ combine a.txt and b.txt
common

$ combine a.txt or b.txt
aaa
common
bbb
common

$ combine a.txt xor b.txt
aaa
bbb

$ combine a.txt not b.txt
aaa

$ combine a.txt or b.txt |sort | uniq
aaa
bbb
common
2025/03/24 15:06

Logique - Algèbre de Boole - and - or - Ordre des opérations - priorité de calcul

Le AND et prioritaire sur le OR.

Moyen mnémotechnique : penser à Haor

In [36]: False and False or True
Out[36]: True

In [37]: ( False and False ) or True
Out[37]: True

In [38]: False and ( False or True )
Out[38]: False

Pour rappel

OR + Disjonction

A B Y
0 0 0
0 1 1
1 0 1
1 1 1

AND . Conjonction

A B Y
0 0 0
0 1 0
1 0 0
1 1 1

Symboles du OR :

  • *
  • | ou ||

Symboles du AND :

  • .
  • & ou &&
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