======LINUX - Souborove systemy, disky, LVM, ...====== ====Soubory==== stat soubor ... informace o souboru - cas modifikace, pristupu atd.\\ ==Pristup k souborum procesama== fuser /mnt/a ... seznam procesu, tere vyuzivatji /mnt/a\\ fuser -vk /mnt/a ... vypise vsechny procesy, ktere pristupovaly na /mnt/a a zabije je\\ lsof ... vypis otevrenych souboru\\ ls -l /proc/*/fd/* ... dalsi zpusob jak vylistovat otevrene soubory\\ ==Prava k souborum== chown -R root:root /etc ... zmeni vlastnika adresare a souboru rekurzivne\\ chgrp root /etc/hosts ... zmeni skupinu vlastnika souboru\\ chmod 755 aaa.txt ... zmeni pristupova prava k souboru\\ tune2fs -l /dev/sda3 ... zapne ACL funkcionalitu na FS\\ mount -o acl /dev/sda ... namountovani s ACL funkcionalitou\\ getfacl ... ukaze ACL (Access Control List) pristupy\\ setfacl -m u:visitor:rx /home/schedule.txt ... nastavi ACL na soubor /home/schedule.txt, ze uzivatel visitor ma pristup rx\\ setfacl -x g:visitors /home/schedule.txt ... zrusi ACL na soubor /home/schedule.txt pro skupinu visitors\\ setfacl -m d:u:student:rw /home ... nastavi defaultni ACL pro adresar /home pro studenta na rw\\ setfacl --remove-default /home ... zrusi defaultni prava k adresari home\\ ====Souborove systemy==== [[http://www.lissot.net/partition/|Filesystemy]] - [[http://www.freesoftware.fsf.org/ext2-doc/|ext2]], ext3, ext4, RaiserFS, BrtFS\\ \\ /etc/fstab ... seznam nadefinovanych FS\\ /etc/mtab ... seznam aktualne pripojenych FS\\ /etc/crypttab ... seznam FS k rozsifrovani behem startu\\ badblocks /dev/fd01440 1440 ... kontrola povrchu diskety\\ badblocks -n /dev/hda8 ... po odmountovani /dev/hda8 nedestruktivni kontrola povrchu disku\\ blkid ... precte FS a identifikuje je (typ FS, UUID)\\ blobfuse ... mounovani BLOB zarizeni (Napriklad [[https://docs.microsoft.com/en-us/azure/storage/blobs/storage-how-to-mount-container-linux|Azure Blob Storage]]\\ cat /proc/filesystems ... fileseystemy, co jsou k dispozici\\ cat /proc/partitions ... seznam zarizeni, ktere jsou k dispozizi\\ cfdisk /dev/sda ... vice uzivatelsky prijemny fdisk\\ cryptsetup luksOpen /dev/mapper/VG-LV FSname ... Odemkne zakryptovany fs /dev/VG/LV a vytvori z nej odemlke zarizeni /dev/mapper/FSname\\ cryptsetup luksClose FSname ... zamkne zakodovany FS (lsblk - vylistuje)\\ cryptsetup -y create luks-data /dev/vgTL/lv.data ... vytvori kryptovani na LV\\ cryptsetup -v -c "aes-cbc-essiv:sha256" -q --verify-passphrase luksFormat /dev/mydev/zipdisk ... vytvori zformatuje zarizeni na sptavny LUKS format a oznaci zarizeni\\ cryptsetup resize sdb1_crypt -v ... zmeneni velikosti\\ cryptsetup hash /dev/mapper/VG-LV ... informace o zakryptovanem FS\\ dd if=/dev/zero of=/dev/fda obs=512 count=200k ... low level formatovani\\ dd if=/dev/hda of=/dev/null .. test sektoru\\ dd if=/dev/zero of=aa count=2000000 .. test rychlosti zapisu\\ dmsetup ls ... seznam disku namapovanych pomoci device mapperu (/dev/mapper)\\ dmsetup info ... informace o jednotlivych discich namapovanych pomoci device mapperu (v /dev/mapper)\\ dmsetup table ... tabulka zarizeni mapperu\\ debugfs /dev/hda2 .. obnoveni smazanych souboru\\ dumpe2fs /dev/sda6 ... podrobne informace o FS\\ e2fsadm -L+2G /dev/Volume00/mylv ... Rozsiri LV + FS o 2G (Musi byt odmountovany FS)\\ e2fsck -c /dev/hda8 ... oznaceni vadnych sektoru\\ e2label /dev/hda1 root_disk ... zmeni LABEL pro /dev/hda1 na root_disk\\ e2label /dec/hda1 ... ukaze label zarizeni /dev/hda1\\ edquota ... meni vzoroveho udivatele pro quota a aplikuje pravidla na jine uzivatele\\ edquota -t ... meni dobu, kdy se ze soft kvoty stane hard kvota\\ [[https://www.root.cz/clanky/encfs-sifrovani-souboru-jinak-a-bez-problemu/|encfs]] ... mountovani zakryptovaneho adresare, umount pomoci fusermount -u\\ extundelete --restoreall /dev/hd1 ... restoruje ([[http://extundelete.sourceforge.net/index.html|undelete]]) vsechny soubory z /dev/hda1 na ext4/ext3 do ./RESTORE_FILES\\ fdisk /dev/hda ... vytvareni/meneni/ruseni FS na /dev/hda\\ fdisk -l /dev/sda1 ... seznam oddilu na /dev/sda\\ fdisk -1 /dev/sda1 ... pocet sektory na oddilu /dev/sda1\\ fdformat /dev/fd0H1440 ... (floppy disk format) formatovani disket\\ findfs LABEL=label ... rozpozna, jaky FS ma jmenovku label\\ fsck -t ext2 /dev/hda2 ... kontrola a oprava FS\\ losetup /dev/loop0 /path/to/container1 ... vytvori loop zarizeni /dev/loop0 ze souboru /path/to/container1\\ losetup -d /dev/loop0 ... zrusi zarizeni /dev/loop0\\ lsscsi - zobrazi scasi disky\\ ls /dev/disk/* ... vypis FS, jeich UUID a jine\\ lsblk --fs ... vylistuje cryptovane (LUKS) blokove zarizeni\\ mkbootdisk --device /dev/fd0 2.4.2-3 ... vytvoreni bootovaci diskety\\ mkdosfs -cv -F 32 /dev/fd0 ... vytvori DOS Filesystem na diskete\\ mke2fs ... vytvori ext2/ext3 FS\\ mkfs -c -t ext2 /dev/fd0 ... vytvoreni FS EXT2 na diskete\\ mkfs.ext2 fs1 ... zformatuje fs1 na ext2\\ mkfs.ext2 -c -c /dev/hdc1 .. naformatuje hdc1, pouzije nekolikanasobny zapis - test zapisu\\ mount -t usbfs usbfs /proc/bus/usb - ukaze, jake usb porty jsou na pocitaci, a take v kterem jsou usb zarizeni\\ mount -t iso9660 -o loop image.iso /mnt/isoimage .. namountuje iso do adresare\\ mount -o noatime,nodirtime /dev/hda1 /mount ... mountovani bez zaznamu acces time\\ mount -o remount,rw,acl,usrquota,grpguota /mnt/a ... premountuje fs /mnt/a s read-write,acl,quota parametry\\ mount -t ext3 /dev/sda1 /mnt/crypto/ -oencryption=aes-256 ... mountovani zakodovaneho FS\\ mount -t [[https://www.howtoforge.com/tutorial/how-to-encrypt-directories-with-ecryptfs-on-ubuntu-16-04/|ecryptfs]] /home/secure /home/secure ... mountovani zakryptovaneho adresare pomoci eCryptFS\\ mount fs1 ~/a -o loop ... pripoji soubor jako disk\\ mount LABEL=data-disk /mnt/data ... pripoji disk s popiskem data-disk\\ parted /dev/hda ... Programek na praci s ext2/FAT/FAT32 (zmensovani,zvetsovani,presunovani,..)\\ partprobe ... informuje OS o zmene FS\\ [[http://www.cgsecurity.org/wiki/PhotoRec_Step_By_Step|photorec]] ... undelete pro FAT, EXT2/3/4 atd. - obnoveni smazanych souboru\\ quotacheck -cugm / ... vytvori user a group quota soubor pro FS /\\ quotaon -g / ... zapne skupinove kvoty pro FS /\\ quotaoff -a ... vypne quoty pro vsechny FS\\ quota -g users ... ukaze uziti disku a kvotu pro grupu users\\ quotarep -u -a ... shromazdi quoty pro vsechy filesystemy a pro vsechny uzivatele\\ repquota -a ... ukaze vsechny kvoty\\ resize2fs -p /dev/vg0/data ... rozsiri FS /dev/vg0/data na maximum, napise vyuziti disku (FS muze byt namountovany)\\ setquota -g users 20000 100000 100 200 / ... meni nastaveni kvot pro konkretniho uzivatele,grupu\\ sfdisk -l -x ... (jako root) seznam vsech FS, ktere jsou k dispozici\\ sfdisk -d /dev/sda > /zaloha_sda ... zazalohuje informace o FS\\ sfdisk < /zaloha_sda ... obnoveni oddilu ze zalohy\\ tune2fs -j /dev/hda2 ... nastavovani parametru FS. Prida zurnal (ext2 -> ext3)\\ tune2fs -l /dev/sda7 ... ukaze nastaveni FS\\ warnquota ... varuje uzivatele o prekrceni kvoty\\ ====Kodovane FS==== [[http://www.truecrypt.org|Truecrypt]] + [[https://help.ubuntu.com/community/TruecryptHiddenVolume|popis]] truecrypt data.ts ... namapuje data.ts na /dev/mapper/truecrypt1, textovy rezim\\ truecrypt --mount --fs-options=rw,nosuid,nodev,umask=077,uid=501,gid=501 -k data.tc.key -p HESLO /mnt/data.ts /mnt/aaa ... namountuje FS\\ truecrypt -d /mnt/aaa ... odmountuje FS\\ realcrypt -t -d ... od,puntuje vsechna TC zarizeni\\ realcrypt -t -c ... vytvoreni noveho zakryptovaneho kontejneru v textovem rezimu\\ realcrypt -t -l ... vylistuje vsechny truecryptova namountovana zarizeni\\ realcrypt -t --mount --filesystem=none data.tc ... rozkoduje a namapuje souborovy kontejner data.tc na zarizeni /dev/truecryptX\\ cryptsetup - LUKS kodovani disku\\ [[https://medium.com/@chrishantha/encrypting-disks-on-ubuntu-19-04-b50bfc65182a|kodovani disku a instalace Ubuntu]]\\ ====Boot sektor, bootovani==== mkinitrd /boot/initrd ... vytvori initrd RamDisk s modulama\\ **GRUB**\\ grub-install --root-directory=/mnt /dev/sda ... nahraje grub do bootovaciho sektoru disku\\ dd if=stage1 of=/dev/fd0 bs=512 count=1;dd if=stage2 of=/dev/fd0 bs=512 seek=1 ... manualni nahrani grubu do boot sektoru\\ **GRUB2**\\ /boot/grub/grub.cfg ... konfigurace, needituje se primo\\ /etc/default/grub ... edituji se globalni parametry grubu. Musi se aplikovat zmeny prikazem /usr/sbin/update-grub\\ /etc/grub.d/* ... posloupnost akci provadenych programem grub-mkconfig. Ten tuto posloupnost prevadi do /boot/grub/grub.cfg\\ /usr/sbin/grub-install ... doporucena cesta jak zavest grub2 na zarizeni\\ /usr/sbin/update-grub ... doporucena cesta jak updatovat konfiguraci grubu2, napr. po zmenach parametru v /etc/default/grub. Spousti grub-mkconfig\\ /usr/sbin/grub-mkconfig ... provadi prevod definic v /etc/grub.d/* do grub.cfg\\ ====Swap disk==== mkswap -L SWAP-hda6 /dev/hda6 ... naformatuje FS /dev/hda6 jako swap FS s popiskem\\ mkswap /tmp/swap ... naformatuhe soubor pro swap FS\\ swapon -a ... pouzije vechny nadefinovane disky v /etc/fstab ke swapovani\\ swapon -s ... ukaze status vsech swapovacich zarizeni\\ swapon /tmp/swap ... zapne swapovani i do souboru /tmp/swap\\ swapoff -a ... zrusi swapovani na vsechny zarizeni\\ ====LVM==== [[http://linux.die.net/man/8/dmsetup|dmsetup]] ... low level prikaz pro praci s LV\\ vgchange -an designvg ... deaktivuje zmeny na VG\\ vgchange -ay designvg ... aktivuje zmeny na VG\\ dmsetup info /dev/VG/LV1 ... informace o LV LV1\\ e2fsadm -L+2G /dev/Volume00/mylv ... Rozsiri LV + FS o 2G (Musi byt odmountovany FS)\\ importvg designvg ... importuje designvg\\ lvcreate -L 4G -n mylv Volume00 ... Vytvori LV ve VG o velikosti 4G\\ lvcreate --size 200M -s -n mysnap /dev/Volume00/mylv ... Vytvori snapshot LV mylv, 200MB pro zmeny\\ lvdisplay ... \\ lvextend -L +50M /dev/vg0/data ... rozsiri LV data o 50MB\\ lvreduce -L -20M /dev/vg0/data ... zmensi LV na 130MB\\ lvremove /dev/Volume00/msnap ... zrusi LV\\ lvs -o +devices ... seznam LV a na kterych jsou zarizenich\\ pvmove /dev/hda1 ... presune vsechy bloky (PE=PP) z /dev/hda1, aby byl prazdny\\ pvcreate /dev/sda1 ... vytvori PV\\ pvdisplay ... ukaze vsechny PV\\ pvs -o +lv_name ... seznam PV i s LV ktere na nich jsou\\ pvscan ... hleda na oddilech PV vsech LVP (napr. exportovane VG)\\ vgcfgbackup aaavg ... zazalohovani VGDA volume grupy aaavg\\ vgcfgrestore ... obnovi VGDA ze zalohy\\ for i in `vgcfgrestore -f oraclevg.conf.OK -ll|grep "PV UUID"|awk '{ print $3 }'`; do A=`vgcfgrestore -f oraclevg.conf -ll | grep -B11 $i|head -1|awk '{ print $3 }'`; B=`vgcfgrestore -f oraclevg.conf.OK -ll | grep -B11 $i|head -1|awk '{ print $3 }'`;vgcfgrestore -f oraclevg.conf.OK -o $B $A; echo; done\\ vgcreate vg0 /dev/sda1 ... vytvori VG vg0 z PV /dev/sda1\\ vgdisplay ... informace o VG\\ vgexport designVG ... exportune neaktivni VG\\ vgextend Volume00 /dev/sda1 ... prida PV do VG\\ vgreduce vg0 /dev/hda1 ... odebere /dev/hda1 z VG vg0\\ vgs ... seznam VG\\ ====Softwarovy raid==== cat /proc/mdstat ... ukaze konfiguraci softwaroveho RAID\\ mdadm ... prace s raid poli\\ mdadm -C /dev/md0 -l 1 -n 2 /dev/sda5 /dev/sda8 ... vytvori nove programove raid pole RAID1 z 2 disku\\ mdadm -D /dev/md0 ... vypise informace o raid poli /dev/md0 \\ mdadm /dev/md0 -f /dev/sdm2 ... oznaceni disku /dev/sdm2 jako vadneho\\ mdadm /dev/md0 -r /dev/sdm2 ... odebrani disku /dev/sdm2 z pole\\ mdadm /dev/md0 -a /dev/sdm2 ... pridani disku /dev/sdm2 do pole\\ mdadm -A --scan ... projde vsechny zarizeni a sestavi z nich raid pole, jez bylo drive vytvoreno\\ cat /proc/mdstat .. raid pole\\ ====Multipathing==== [[http://www.redhat.com/docs/manuals/csgfs/browse/4.6/DM_Multipath/index.html|Device Mapper Multipathing]]\\ device-mapper-multipah ... balicek\\ dm-multipath ... kernel modul podporujici failover atd.\\ multipath ... prikaz - listuje a configuruje zarizeni, spousti se bezne v /etc/rs.sysinit, udevem, nebo initramfs\\ multipathd ... demon, monitoruje cesty\\ kpartx ... prikaz, vytvari DM (/proc) zarizeni potrebne pro souborove systemy (FS)\\ /etc/multipath.conf ... konfigurace\\ dmsetup ls ... seznam multipath zarizeni\\ \\ echo "scsi-qlascan" > /proc/scsi/qla2200/1 ... rescanuje zarizeni na FC\\ echo "scsi add-single-device 3 0 0 0" > /proc/scsi/scsi ... prida zarizeni (/dev) podle toho, co nasel qlascan\\ echo "scsi remove-single-device" 3 0 1 0 > /proc/scsi/scsi ... odebera zarizeni (/dev)\\ ==SDD driver== cfgvpath ... rescanuje zarizenipro sdd\\ service sdd start/stop/status/restart ... sdd sluzba\\ datapath query device ... seznam disku spravovanych sdd\\ scli, sclient ... nastroj na konfiguraci FC - Fiber Channel karty\\ ====Hardware==== ==INFO - disky:== /proc/ide/ide0/hda/model .. nazev modelu disku /proc/ide/ide0/hda/capacity .. pocet 512-bajtovych bloku smartctl -s /dev/hda .. S.M.A.R.T. zaznamy o chybach smartctl -a /dev/hda .. (smartmontools.sourgeforge.net) hdparm /dev/hda .. zjisti moznosti disku (dma atd.) hdparm -c1 -d1 /dev/hda .. zapne dma a IO_support32 hddtemp /dev/hdd .. (www.guzu.net/linux/hddtemp.php) monitorovani teploty disku -s log hddtemp -d /dev/hda; telnet localhost 7634 .. demon, pres tcp ukazuje teplotu [[http://www.digipedia.pl/man/doc/view/sg_scan.8/|sg_scan]] ... Soucast balicku sg3_utils) scanuje SCSI disky /dev/sgX, nebo /dev/sdXX ==TEST - disky:== dd if=/dev/hda of=/dev/null .. test sektoru mkfs.ext2 -c -c /dev/hdc1 .. naformatuje hdc1, pouzije nekolikanasobny zapis - test zapisu dd if=/dev/zero of=aa count=2000000 .. test rychlosti zapisu debugfs /dev/hda2 .. obnoveni smazanych souboru lsdev procinfo /proc/sys/dev/cdrom/atoeject, autoclose, lock .. vlastnosti cdrom mechaniky: autovysunuti po odmountovani, autozasunuti pro mountovani, zamce pri mountovani ==INFO - disky:== /proc/ide/ide0/hda/model .. nazev modelu disku /proc/ide/ide0/hda/capacity .. pocet 512-bajtovych bloku smartctl -s /dev/hda .. S.M.A.R.T. zaznamy o chybach smartctl -a /dev/hda .. (smartmontools.sourgeforge.net) hdparm /dev/hda .. zjisti moznosti disku (dma atd.) hdparm -c1 -d1 /dev/hda .. zapne dma a IO_support32 hddtemp /dev/hdd .. (www.guzu.net/linux/hddtemp.php) monitorovani teploty disku -s log hddtemp -d /dev/hda; telnet localhost 7634 .. demon, pres tcp ukazuje teplotu Storage - manipulace s disky echo "scsi-qlascan" > /proc/scsi/qla2200/1 ... scan disku ze Storage echo "scsi remove-single-device" 3 0 1 0 > /proc/scsi/scsi ... odebrani disku ze storage z /dev echo "scsi add-single-device 3 0 0 0" > /proc/scsi/scsi ... pridani disku ze storage do /dev ====Vypalovani CD==== mkisofs -J -r -o output.iso dir_with_files/ ... z adresare idela ISO\\ mkisofs -J -r -C 0,145024 -M ATAPI:0,1,0 -o output1.iso dir_with_files/ \\ mkisofs -J -r -C $(cdrecord dev=ATAPI:0,1,0 -msinfo) -M ATAPI:0,1,0 -o output1.so dir_with_files/ \\ cdrecord dev=ATAPI:0,1,0 -msinfo .. zjisti, kde se ma zacit dalsi session u multisession\\ cdrecord -scanbus ... vypise CD a DVD zarizeni\\ cdrecord dev=0,0,0 blank=fast .. vymaze prepisovatelne cd\\ cdrecord dev=ATAPI:0,1,0 -v -multi -pad -data output.iso\\ cdrecord -v dev=0,0,0 -pad -audio *.wav ... vypali audio stopy\\ mkisofs -J -r dir_with_files/ | cdrecord dev=ATAPI:0,1,0 -v -multi -pad -data -\\ mkisofs -r -o (image file) (source directory); mount -t iso9660 -o ro,loop=/dev/loop0 (image file)\\ /mnt/cdrom ... namountuje ISO\\ growisofs ... kombinace mkisofs a cdrecord\\ paketovy zapis na CD (linux+06/3) (packet-cd.sourceforge.net/) (sourceforge.net/projects/linux-udf)\\ ====SAN Event (Storage Area Network)==== date\\ /var/log/messages\\ dmesg\\ uname -a\\ sysreport (Red Hat)\\ datapath query adapter\\ datapath query device\\ ====Zalohy/obnoveni souboru==== [[http://www.mondorescue.org/|MONDo]] ... bootovatelne zalohy linuxu\\ SystemImager ... instalace, zalohy Linuxu\\ ====Priklady==== ==Rozsireni FS v LVM s ext2/3== umount /adr e2fsadm -L+1G /dev/myvg/homevol mount /adr nebo umount /adr lvextend -L+1G /dev/myvg/homevol resize2fs /dev/myvg/homevol mount /adr ==Rozsireni FS v LVM s reiser== mount /adr\\ resize_reiserfs -f /dev/myvg/homevol\\ ==Rozsireni FS v LVM s xfs== mount /adr\\ xfs_growfs /home\\ ==vytvoreni virtualniho FS ze souboru== dd if=/dev/zero of=/dev/fda obs=512 count=200k ... low level formatovani\\ mkfs.ext2 fs1\\ mount fs1 ~/a -o loop\\ ==zaloha disku== dd if=/dev/hda of=/tmp/aaa (nebo cat /dev/hda > /tmp/aaa) mount -o loop /tmp/aaa cat /tmp/aaa > /dev/hda1 dd if=/dev/zero of filler_file; snc; rm filler_file ... zaplni zbyvajici misto na diku nulama, ==Vypalovani CD== cdrecord -scanbus mkisofs -J -r -o output.iso dir_with_files/ cdrecord dev=ATAPI:0,1,0 -msinfo .. zjisti, kde se ma zacit dalsi session u multisession nebo mkisofs -J -r dir_with_files/ | cdrecord dev=ATAPI:0,1,0 -v -multi -pad -data - ==Vytvoreni RAM-disku - disk z pameni ROM== mknod -m 660 /dev/ram b 1 1\\ chown root.disk /dev/ram\\ dd if=/dev/zero of=/dev/ram bs=1k count=4k ... vycisti pamet o velikosti 4MB\\ /sbin/mkfs -t ext2 -m 0 /dev/ram 4096 ... vytvori ext2 strukturu na 4MB RAM\\ mount -t ext2 /dev/ram /mnt/disk ... namountuje pametovy RAM disk\\ ==Odkazy== [[http://www.g-loaded.eu/2005/11/10/encrypt-devices-using-dm-crypt-and-luks/|http://www.g-loaded.eu/2005/11/10/encrypt-devices-using-dm-crypt-and-luks/]] moc pekne navody na ruzne veci\\