Автор Тема: (РЕШЕН) Извеждане на всеки дял на хард диска  (Прочетена 1477 пъти)

Ivshti

  • Напреднали
  • *****
  • Публикации: 322
  • Distribution: Linvo 2010.3
  • Window Manager: Gnome
    • Профил
    • WWW
Опитвам се да направя така, че един шел скрипт да извежда всичките device-ове на дялове, но "fdisk -l" не помага, защото аз искам да се извеждат по device на ред, например:
Примерен код

/dev/hda1
/dev/hda4
/dev/hdc1

А не
Примерен код


Disk /dev/hda: 82.3 GB, 82348277760 bytes
255 heads, 63 sectors/track, 10011 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x015c015b

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1        1912    15358108+   7  HPFS/NTFS
/dev/hda4            1913       10012    65055280+   f  W95 Ext'd (LBA)
/dev/hdc1            1913        7788    47190937    7  HPFS/NTFS

Disk /dev/hdc: 82.3 GB, 82348277760 bytes
255 heads, 63 sectors/track, 10011 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x8f800000

   Device Boot      Start         End      Blocks   Id  System
/dev/hdа1   *         262       10011    78316875   83  Linux


Благодаря предварително!



Активен

seaman

  • Напреднали
  • *****
  • Публикации: 65
    • Профил
А какво пречи да използваш:
#df
или
#df -h

всъщност трябва да са монтирани за да изведе инфото :-)



Активен

lkr

  • Напреднали
  • *****
  • Публикации: 81
    • Профил
fdisk -l | egrep '^\/\w+' | cut -d" " -f1
Активен

Ivshti

  • Напреднали
  • *****
  • Публикации: 322
  • Distribution: Linvo 2010.3
  • Window Manager: Gnome
    • Профил
    • WWW
Мерси много за последното, това ми трябваше.  '<img'>
А иначе df ми връща всички монтирани block device-ове, което е МНОГО досадно!!! Плюс това пак трябва да ползвам cut както lkr каза.



Активен

Naka

  • Напреднали
  • *****
  • Публикации: 3397
    • Профил
cat /proc/partitions

също извежда дяловете
Активен

Perl - the only language that looks the same before and after encryption.

XsPiDeR

  • Напреднали
  • *****
  • Публикации: 42
  • Distribution: CentOS 6
  • Window Manager: GNOME
    • Профил
    • WWW
Има и много други начини ....
Цитат
df -h  | grep hd | awk '{print$1}'


Цитат
fdisk -l | grep hd | awk '{print$1}'
Активен

Ivshti

  • Напреднали
  • *****
  • Публикации: 322
  • Distribution: Linvo 2010.3
  • Window Manager: Gnome
    • Профил
    • WWW
@Naka: знам, тествах го, но я ми кажи например /dev/hda дял ли е или цял хард диск (това връща cut-нат само до partition-и output на /proc/partitions)
1. df вади само монтирани
2.
Примерен код
fdisk -l | grep hd | awk '{print$1}'
Примерен код
fdisk -l | egrep '^\/\w+' | cut -d" " -f1

са едно и също нещо, само че реализирано с различни програми за текстова обработка и си пропуснал
Примерен код
egrep '^\/\w+'
за да филтрира само редовете, започващи с "/"! Опитал си се с "grep hd", ама нещо не става, защото в реда, от който идва онова излишно "Disk", има device на диска, който е нещо от сорта на "/dev/hda" и не се отсява от "grep hd". За това трябва да е така:
Примерен код
fdisk -l | awk '{print$1}' | grep hd

Но Ubuntu например (ако не се лъжа) ползва device-ове от типа на /dev/sda1 за дяловете на хард диска, което значи "grep sd".
Все пак благодаря на всички, помагащи тук, научих доста за awk, cut и egrep.



Активен

Naka

  • Напреднали
  • *****
  • Публикации: 3397
    • Профил
/dev/hda е целият диск. от сектор 0 до последният сектор на диска. /dev/hda1 е от някъв сектор до някакъв сектор.
ако сложиш например чисто нов диск, бутнеш от някакво лайв ЦД ще видиш само /dev/hda,

ако имаш 2 чисто нови диска ще видиш например
/dev/hda
/dev/hdb

в момента който направиш някъкъв партишън в hda,
ще се появи и /dev/hda1
/dev/hda
/dev/hda1

освен това се листват и extended партишъните, може да видиш нещто такова. например hda3  е ext. a hda1 e дял вътре в ext. партишъна
/dev/hda
/dev/hda1
/dev/hda3  

информацията която дава cat /proc/partitions е така както  го вижда кеърнела, няма значение дали дяла е монтиран или не и няма значение дали дали дялът е форматиран.


hda е ATA33/66/100 диск с големите плоски кабели.
sda е scsi диск - това са сегашните SATA дискове с тънките сериини кабели.

интересно е че, ако направиш нов дял,/proc/partitions не се обновява веднага, а трябва да рестартираш кернела, имам наблюдение че тази таблица се определя един път при рестарт.

Някой знае ли команда, как може за да се накара кърнела да си препрочете таблицата без рестарт.



Активен

Perl - the only language that looks the same before and after encryption.