Ostatní > Tipy a triky pro Linux
Zjednodušená správa diskových oddílů
(1/1)
ramael:
Toto jsem si přidal do .bash_aliases:
--- Kód: ---alias lsblk='lsblk -o NAME,UUID,SIZE,FSTYPE,FSUSED,LABEL,MOUNTPOINT'
--- Konec kódu ---
tím se mi vypisují srozumitelněji výsledky příkazu lsblk
Pak si stačí každý ten mountpoint/oddíl nějak lidsky pojmenovat. Třeba výpis u mne na ubu22 pak vypadá takto:
--- Kód: ---radek@radek-ubuntu:~$ lsblk
NAME UUID SIZE FSTYPE FSUSED LABEL MOUNTPOINTS
loop0 4K squashfs 128K /snap/bare/5
loop1 63,2M squashfs 63,3M /snap/core20/1738
loop2 63,3M squashfs 63,4M /snap/core20/1778
loop4 238,4M squashfs 238,5M /snap/firefox/2211
loop5 400,8M squashfs 400,9M /snap/gnome-3-38-2004/112
loop6 346,3M squashfs 346,4M /snap/gnome-3-38-2004/119
loop7 91,7M squashfs 91,8M /snap/gtk-common-themes/1535
loop8 45,9M squashfs 46M /snap/snap-store/599
loop9 45,9M squashfs 46M /snap/snap-store/638
loop10 49,6M squashfs 49,6M /snap/snapd/17883
loop11 304K squashfs 384K /snap/snapd-desktop-integration/43
loop12 304K squashfs 384K /snap/snapd-desktop-integration/49
loop13 238,5M squashfs 238,5M /snap/firefox/2263
loop14 49,8M squashfs 49,9M /snap/snapd/17950
nvme0n1 476,9G
├─nvme0n1p1 DB0D-4C27 96M vfat 5,5M /boot/efi
├─nvme0n1p2 f84881c7-64da-4955-8120-351cb741ef60 74,5G ext4 Mint22
├─nvme0n1p3 ef406b82-d644-4133-8569-82642c864955 74,5G ext4 Arch
├─nvme0n1p4 4ddf0cf7-9f6b-4cf5-91e1-65b0302c4580 74,5G ext4 22,6G ubuntu22 /var/snap/firefox/common/host-hunspell
│ /
├─nvme0n1p5 e3bab595-ca48-4a79-bc7a-60f20f44bbcb 74,5G ext4 antiX22
├─nvme0n1p6 92d893f1-5339-42c2-9cc9-1e84a2cf8039 19,6G ext4 3,8G voidlinux /media/radek/voidlinux
├─nvme0n1p7 5f3c108a-b353-4682-ab57-8e4e2638ec5e 104,3G ext4 49,1G data /media/radek/data
├─nvme0n1p8 7897ed19-78a5-4478-b129-9f3ddb6c3cf8 7,5G swap [SWAP]
├─nvme0n1p9 4aeae689-9244-40d1-ab2e-9c904b30c10e 19,6G ext4 4,4G artix /media/radek/artix
├─nvme0n1p10 9d72ccec-5ee1-400a-b590-fe8ffb51b7fe 17,6G ext4 freebsd
└─nvme0n1p11 705a2f7a-8b90-49be-9fc4-a8f28c456e11 10,3G ext4 minix
--- Konec kódu ---
Všimněte si kolonky LABEL. Každý oddíl si můžete pojmenovat abyste hned věděli co tam máte a netápali podle mountpointu nebo nedej bože podle UUID.
Nejprve kouknem na kolonku FSTYPE kde zjistíme jaký souborový systém na daném oddílu máme. Podle toho použijeme příkaz na pojmenování oddílu.
Najdeme si pár příkazů které s tím pracují:
--- Kód: ---radek@radek-ubuntu:~$ ll /usr/sbin | grep label
lrwxrwxrwx 1 root root 8 lis 23 09:52 dosfslabel -> fatlabel
lrwxrwxrwx 1 root root 7 lis 23 09:52 e2label -> tune2fs
-rwxr-xr-x 1 root root 39K bře 23 2022 fatlabel
-rwxr-xr-x 1 root root 23K lis 1 12:56 ntfslabel
-rwxr-xr-x 1 root root 23K úno 21 2022 swaplabel
--- Konec kódu ---
Z názvů je jasné který příkaz pracuje s jakým souborovým systémem. Já mám ext4, tak používám příkaz e2label.
Použití je jednoduché:
--- Kód: ---sudo e2label /dev/nvme0n1p5 antix
--- Konec kódu ---
Tím jsem si "pojmenoval(přejmenoval)" na antix oddíl /dev/nvme0n1p5. Následný výpis ukáže že je to tak:
--- Kód: ---radek@radek-ubuntu:~$ lsblk
NAME UUID SIZE FSTYPE FSUSED LABEL MOUNTPOINTS
loop0 4K squashfs 128K /snap/bare/5
loop1 63,2M squashfs 63,3M /snap/core20/1738
loop2 63,3M squashfs 63,4M /snap/core20/1778
loop4 238,4M squashfs 238,5M /snap/firefox/2211
loop5 400,8M squashfs 400,9M /snap/gnome-3-38-2004/112
loop6 346,3M squashfs 346,4M /snap/gnome-3-38-2004/119
loop7 91,7M squashfs 91,8M /snap/gtk-common-themes/1535
loop8 45,9M squashfs 46M /snap/snap-store/599
loop9 45,9M squashfs 46M /snap/snap-store/638
loop10 49,6M squashfs 49,6M /snap/snapd/17883
loop11 304K squashfs 384K /snap/snapd-desktop-integration/43
loop12 304K squashfs 384K /snap/snapd-desktop-integration/49
loop13 238,5M squashfs 238,5M /snap/firefox/2263
loop14 49,8M squashfs 49,9M /snap/snapd/17950
nvme0n1 476,9G
├─nvme0n1p1 DB0D-4C27 96M vfat 5,5M /boot/efi
├─nvme0n1p2 f84881c7-64da-4955-8120-351cb741ef60 74,5G ext4 Mint22
├─nvme0n1p3 ef406b82-d644-4133-8569-82642c864955 74,5G ext4 Arch
├─nvme0n1p4 4ddf0cf7-9f6b-4cf5-91e1-65b0302c4580 74,5G ext4 22,6G ubuntu22 /var/snap/firefox/common/host-hunspell
│ /
├─nvme0n1p5 e3bab595-ca48-4a79-bc7a-60f20f44bbcb 74,5G ext4 antix
├─nvme0n1p6 92d893f1-5339-42c2-9cc9-1e84a2cf8039 19,6G ext4 3,8G voidlinux /media/radek/voidlinux
├─nvme0n1p7 5f3c108a-b353-4682-ab57-8e4e2638ec5e 104,3G ext4 49,1G data /media/radek/data
├─nvme0n1p8 7897ed19-78a5-4478-b129-9f3ddb6c3cf8 7,5G swap [SWAP]
├─nvme0n1p9 4aeae689-9244-40d1-ab2e-9c904b30c10e 19,6G ext4 4,4G artix /media/radek/artix
├─nvme0n1p10 9d72ccec-5ee1-400a-b590-fe8ffb51b7fe 17,6G ext4 freebsd
└─nvme0n1p11 705a2f7a-8b90-49be-9fc4-a8f28c456e11 10,3G ext4 minix
--- Konec kódu ---
Pak si stačí vytvořit složku:
--- Kód: ---sudo mkdir /media/radek/antix
--- Konec kódu ---
A do /etc/fstab si přidat řádek:
--- Kód: ---sudo -i
echo "LABEL=antix /media/radek/antix ext4 rw,nosuid,nodev,user,noauto,relatime,errors=remount-ro 0 0" >> /etc/fstab
--- Konec kódu ---
Hotovo. Od teď se dá oddíl jednoduše připojit:
--- Kód: ---mount -L antix
--- Konec kódu ---
a odpojit:
--- Kód: ---umount /media/radek/antix
--- Konec kódu ---
Aby to bylo jednodušší, vytvořil jsem dva skripty se jmény pripoj a odpoj
pripoj:
--- Kód: ---#! /usr/bin/env bash
mkdir /media/$1 &> /dev/null
mount -L $1 /media/$1
--- Konec kódu ---
odpoj:
--- Kód: ---#! /usr/bin/env bash
umount /media/$1
[[ -z "$(ls -A /media/$1)" ]] && rm -r /media/$1 || echo složka není prázdná >&2
--- Konec kódu ---
Díky tomu se nemusí upravovat /etc/fstab. Stačí jen v terminálu zadat:
--- Kód: ---sudo pripoj antix
--- Konec kódu ---
a skript vytvoří složku /media/antix a do ní připojí danný oddíl.
Na odpojení:
--- Kód: ---sudo odpoj antix
--- Konec kódu ---
a skript oddíl odpojí a vymaže prázdnou složku kde byl oddíl připojen. Tím nezůstávají prázdné složky (bordel) v souborovém systému a jeden hned ví co má připojeno a co ne.
EDIT: typo ::)
ramael:
Malinko jsem skripty na připojení a odpojení oddílů podle LABEL vylepšil.
Přidal jsem ochranu proti překlepům. Takže pokud se chce připojit oddíl s neexistující LABEL, nezůstane prázdná složka v souborovém systému. Finální verze skriptu pripoj:
--- Kód: ---#! /usr/bin/env bash
# vytvoří příslušnou složku
mkdir /media/$1
# pokud se nepodaří oddíl do složky připojit
# nově vytvořená prázdná složka se smaže
mount -L $1 /media/$1 || rm -d /media/$1
--- Konec kódu ---
Dále do skriptu odpoj přidána ochrana proti překlepu a nechtěnému odpojení složky připojené přez fstab. Což můžou být různé třeba sdílené oddíly. Finální verze skriptu odpoj:
--- Kód: ---#! /usr/bin/env bash
# test na překlep. Pokud daný adresář neexistuje ukončí se skript
[ -d "/media/$1" ] || exit 1
# ochrana proti odpojení a smazání adresáře zadaného ve fstab
# hledá ve fstab mountpoint který chci odpojit a smazat
# pokud začíná řádek znakem hash (komentář) a pak hledaný mountpoint, je to ignorováno.
# v ostatních případech nálezu není žádoucí s tím něco dělat. Skript se ukončí
grep -q "^[^#].* /media/$1 " /etc/fstab && exit 0
# daný mountpoint není ve fstab tak se odpojí
umount /media/$1
# a prázdná složka smaže
rm -d /media/$1
--- Konec kódu ---
Navigace
[0] Seznam témat
Přejít na plnou verzi