Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Zjednodušená správa diskových oddílů  (Přečteno 4681 krát)

ramael

  • Stálý člen
  • **
  • Příspěvků: 633
Zjednodušená správa diskových oddílů
« kdy: 13 Ledna 2023, 13:48:01 »
Toto jsem si přidal do .bash_aliases:
Kód: [Vybrat]
alias lsblk='lsblk -o NAME,UUID,SIZE,FSTYPE,FSUSED,LABEL,MOUNTPOINT'
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: [Vybrat]
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
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: [Vybrat]
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
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: [Vybrat]
sudo e2label /dev/nvme0n1p5 antix
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: [Vybrat]
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
Pak si stačí vytvořit složku:
Kód: [Vybrat]
sudo mkdir /media/radek/antix
A do /etc/fstab si přidat řádek:
Kód: [Vybrat]
sudo -i
echo "LABEL=antix /media/radek/antix ext4 rw,nosuid,nodev,user,noauto,relatime,errors=remount-ro 0 0" >> /etc/fstab
Hotovo. Od teď se dá oddíl jednoduše připojit:
Kód: [Vybrat]
mount -L antix
a odpojit:
Kód: [Vybrat]
umount /media/radek/antix
Aby to bylo jednodušší, vytvořil jsem dva skripty se jmény pripoj a odpoj
pripoj:
Kód: [Vybrat]
#! /usr/bin/env bash

mkdir /media/$1 &> /dev/null
mount -L $1 /media/$1
odpoj:
Kód: [Vybrat]
#! /usr/bin/env bash

umount /media/$1
[[ -z "$(ls -A /media/$1)" ]] && rm -r /media/$1 || echo složka není prázdná >&2
Díky tomu se nemusí upravovat /etc/fstab. Stačí jen v terminálu zadat:
Kód: [Vybrat]
sudo pripoj antix
a skript vytvoří složku /media/antix a do ní připojí danný oddíl.
Na odpojení:
Kód: [Vybrat]
sudo odpoj antix
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  ::)
« Poslední změna: 15 Ledna 2023, 08:00:27 od ramael »
Lenovo: ThinkPad X380 Yoga
MeWe  Joutůůůůb

ramael

  • Stálý člen
  • **
  • Příspěvků: 633
Re:Zjednodušená správa diskových oddílů
« Odpověď #1 kdy: 15 Ledna 2023, 07:54:27 »
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: [Vybrat]
#! /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

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: [Vybrat]
#! /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
« Poslední změna: 15 Ledna 2023, 08:02:01 od ramael »
Lenovo: ThinkPad X380 Yoga
MeWe  Joutůůůůb

 

Provoz zaštiťuje spolek OpenAlt.