Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Následující verze | Předchozí verze | ||
diskdebug [2012/07/17 22:33] – vytvořeno ubuntu | diskdebug [2019/02/25 18:21] (aktuální) – upraveno mimo DokuWiki 127.0.0.1 | ||
---|---|---|---|
Řádek 1: | Řádek 1: | ||
+ | ====== DiskDebug ====== | ||
+ | **DiskDebug** - skript, který za vás vyhledá informace při problémech s disky - interními, externími, flash paměti, mp3 přehrávače apod. | ||
+ | |||
+ | {{.: | ||
+ | {{.: | ||
+ | |||
+ | Skript se spouští přes //gksudo//, a výsledný soubor **výsledky.txt** se zkopíruje do fóra. Pro podrobnější návod se podívejte na [[Řešení problémů: | ||
+ | |||
+ | ====== Text skriptu ke zkopírování ====== | ||
+ | < | ||
+ | #! /bin/bash | ||
+ | |||
+ | Devkit(){ | ||
+ | which udisks &> /dev/null || { echo " | ||
+ | for i in / | ||
+ | udisks --show-info $i | ||
+ | done | ||
+ | } | ||
+ | |||
+ | if [[ `whoami` != " | ||
+ | zenity --info --title=" | ||
+ | exit 1 | ||
+ | fi | ||
+ | |||
+ | ##### zde je možné přidávat příkazy ###### | ||
+ | DiskPrikazy=( " | ||
+ | SystemPrikazy=( " | ||
+ | ########################################## | ||
+ | |||
+ | TempSoubor=`mktemp` | ||
+ | |||
+ | # adresář, z kterého spouštíme skript | ||
+ | AktAdresar=$(cd $(dirname " | ||
+ | # existuje AktAdresar? | ||
+ | # pokud ne, přepokládej $HOME nebo /tmp | ||
+ | [[ -z $AktAdresar ]] && AktAdresar=" | ||
+ | [[ -z $AktAdresar ]] && AktAdresar=/ | ||
+ | |||
+ | PocetDiskPrikazu=$((${# | ||
+ | PocetSystemPrikazu=$((${# | ||
+ | CelkemPrikazu=$(($PocetDiskPrikazu * 2 + $PocetSystemPrikazu + 15)) | ||
+ | |||
+ | zenity --info --title=" | ||
+ | # progress bar | ||
+ | # pokud klikne uživatel Cancel, nestačí to dát do proměnné - je to v souboru $TempSoubor | ||
+ | # ten se pak testuje v průběhu skriptu a la '[[ -s $TempSoubor ]] && exit 1' | ||
+ | exec 3> >(zenity --progress --title=" | ||
+ | |||
+ | j=1 | ||
+ | for i in $(seq 1 $PocetDiskPrikazu); | ||
+ | prikaz=${DiskPrikazy[$i]} | ||
+ | echo $(($j * 100 / $CelkemPrikazu)) >&3 | ||
+ | echo "# ${j}/ | ||
+ | $prikaz &> /tmp/$i.txt | ||
+ | [[ -s $TempSoubor ]] && exit 1 | ||
+ | ((j++)) | ||
+ | sleep 0.2 | ||
+ | done | ||
+ | |||
+ | zenity --info --title=" | ||
+ | for i in {1..14}; do | ||
+ | echo $(($j * 100 / $CelkemPrikazu)) >&3 | ||
+ | echo "# ${j}/ | ||
+ | [[ -s $TempSoubor ]] && exit 1 | ||
+ | ((j++)) | ||
+ | sleep 1 | ||
+ | done | ||
+ | |||
+ | exec &> " | ||
+ | |||
+ | for i in $(seq 1 $PocetDiskPrikazu); | ||
+ | echo $(($j * 100 / $CelkemPrikazu)) >&3 | ||
+ | prikaz=${DiskPrikazy[$i]} | ||
+ | echo "# ${j}/ | ||
+ | echo | ||
+ | echo $prikaz | ||
+ | echo --------------------------- | ||
+ | $prikaz | diff -wB - /tmp/$i.txt | ||
+ | [[ -s $TempSoubor ]] && exit 1 | ||
+ | ((j++)) | ||
+ | sleep 0.2 | ||
+ | done | ||
+ | |||
+ | for i in $(seq 1 $PocetSystemPrikazu); | ||
+ | echo $(($j * 100 / $CelkemPrikazu)) >&3 | ||
+ | prikaz=${SystemPrikazy[$i]} | ||
+ | echo "# ${j}/ | ||
+ | echo | ||
+ | echo $prikaz | ||
+ | echo --------------------------- | ||
+ | $prikaz | ||
+ | [[ -s $TempSoubor ]] && exit 1 | ||
+ | ((j++)) | ||
+ | sleep 0.2 | ||
+ | done | ||
+ | |||
+ | if zenity --question --title=" | ||
+ | editor=" | ||
+ | which " | ||
+ | $editor " | ||
+ | fi | ||
+ | |||
+ | exit 0 | ||
+ | </ | ||
+ | |||
+ | ====== Technické detaily (není nutné znát) ====== | ||
+ | |||
+ | Základem skriptu je vytvoření výpisu příkazů uvedených v proměnné // | ||
+ | |||
+ | Příkaz //zenity// pouze zobrazuje okénka s instrukcemi. | ||
+ | |||
+ | K výpisu jsou ještě připojeny obecné systémové příkazy (proměnná // | ||
+ | |||
+ | {{.: | ||
+ | < | ||
+ | dmesg | ||
+ | --------------------------- | ||
+ | 669,689d668 | ||
+ | < [ 2682.300043] end_request: | ||
+ | < [ 2682.328027] end_request: | ||
+ | < [ 2690.316035] usb 1-4: new high speed USB device using ehci_hcd and address 3 | ||
+ | < [ 2690.451331] usb 1-4: configuration #1 chosen from 1 choice | ||
+ | < [ 2690.505460] Initializing USB Mass Storage driver... | ||
+ | < [ 2690.505622] scsi4 : SCSI emulation for USB Mass Storage devices | ||
+ | < [ 2690.505925] usbcore: registered new interface driver usb-storage | ||
+ | < [ 2690.505931] USB Mass Storage support registered. | ||
+ | < [ 2690.506919] usb-storage: | ||
+ | < [ 2690.506924] usb-storage: | ||
+ | < [ 2695.504188] usb-storage: | ||
+ | < [ 2695.505299] scsi 4:0:0:0: Direct-Access | ||
+ | < [ 2695.505888] sd 4:0:0:0: Attached scsi generic sg3 type 0 | ||
+ | < [ 2695.522417] sd 4:0:0:0: [sdc] 1974271 512-byte logical blocks: (1.01 GB/963 MiB) | ||
+ | < [ 2695.523390] sd 4:0:0:0: [sdc] Write Protect is off | ||
+ | < [ 2695.523394] sd 4:0:0:0: [sdc] Mode Sense: 00 00 00 00 | ||
+ | < [ 2695.523397] sd 4:0:0:0: [sdc] Assuming drive cache: write through | ||
+ | < [ 2695.528271] sd 4:0:0:0: [sdc] Assuming drive cache: write through | ||
+ | < [ 2695.528280] | ||
+ | < [ 2695.696238] sd 4:0:0:0: [sdc] Assuming drive cache: write through | ||
+ | < [ 2695.696248] sd 4:0:0:0: [sdc] Attached SCSI removable disk | ||
+ | |||
+ | lsusb | ||
+ | --------------------------- | ||
+ | 2d1 | ||
+ | < Bus 001 Device 003: ID 3538:0054 Power Quotient International Co., Ltd Flash Drive (2GB) | ||
+ | |||
+ | fdisk -l | ||
+ | --------------------------- | ||
+ | 29,38d28 | ||
+ | < | ||
+ | < Disk /dev/sdc: 1010 MB, 1010826752 bytes | ||
+ | < 255 heads, 63 sectors/ | ||
+ | < Units = cylinders of 16065 * 512 = 8225280 bytes | ||
+ | < Disk identifier: 0x91f72d24 | ||
+ | < | ||
+ | < Device Boot Start | ||
+ | < / | ||
+ | < Partition 1 has different physical/ | ||
+ | < phys=(121, 254, 63) logical=(122, | ||
+ | |||
+ | parted -l | ||
+ | --------------------------- | ||
+ | 29,37d28 | ||
+ | < Model: Generic USB Flash Disk (scsi) | ||
+ | < Disk /dev/sdc: 1011MB | ||
+ | < Sector size (logical/ | ||
+ | < Partition Table: msdos | ||
+ | < | ||
+ | < Number | ||
+ | < 1 32.3kB | ||
+ | < | ||
+ | < | ||
+ | |||
+ | mount | ||
+ | --------------------------- | ||
+ | 15d14 | ||
+ | < /dev/sdc1 on / | ||
+ | |||
+ | blkid -c /dev/null | ||
+ | --------------------------- | ||
+ | 11d10 | ||
+ | < /dev/sdc1: LABEL="" | ||
+ | |||
+ | uname -a | ||
+ | --------------------------- | ||
+ | Linux lean 2.6.31-17-generic #54-Ubuntu SMP Thu Dec 10 16:20:31 UTC 2009 i686 GNU/Linux | ||
+ | |||
+ | cat / | ||
+ | --------------------------- | ||
+ | DISTRIB_ID=Ubuntu | ||
+ | DISTRIB_RELEASE=9.10 | ||
+ | DISTRIB_CODENAME=karmic | ||
+ | DISTRIB_DESCRIPTION=" | ||
+ | |||
+ | free -m | ||
+ | --------------------------- | ||
+ | | ||
+ | Mem: | ||
+ | -/+ buffers/ | ||
+ | Swap: | ||
+ | |||
+ | df -h | ||
+ | --------------------------- | ||
+ | Filesystem | ||
+ | / | ||
+ | udev 497M 288K 497M 1% /dev | ||
+ | none 497M 140K 497M 1% /dev/shm | ||
+ | none 497M | ||
+ | none 497M 8.0K 497M 1% /var/lock | ||
+ | none 497M | ||
+ | / | ||
+ | / | ||
+ | </ |