среда, 11 сентября 2013 г.

жесткие диски linux

Просмотр всех разделов жестких дисков


ls /dev/sd*
или
ls /dev/hd*

Получаем что-то похожее на

/dev/sdd1  /dev/sdc  /dev/sdb4  /dev/sda5  /dev/sda2  /dev/sdb2  /dev/sda7  /dev/sdb5  /dev/sdc2
/dev/sdd   /dev/sdb  /dev/sda   /dev/sda1  /dev/sdb3  /dev/sda6  /dev/sdb1  /dev/sdc1

Подробная информация о смонтированных разделах


fdisk -l

Итог:

Disk /dev/sdb: 750.2 GB, 750156374016 bytes
255 heads, 63 sectors/track, 91201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00063e3c

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1         487     3905536   82  Linux swap / Solaris
Partition 1 does not end on cylinder boundary.
/dev/sdb2             487        3616    25134080   83  Linux
/dev/sdb3            3616       10561    55785472   83  Linux
/dev/sdb4           10561       91202   647748472    5  Extended
/dev/sdb5           10561       91202   647746560   83  Linux

Размер, тип ФС, сколько использовано, сколько доступно и куда смонтировано


df -aHT

Получаем:

Ф. система    Тип      Разм   Исп   Дост  Исп% смонтирована на
/dev/sdb2     ext4      26G   8,5G    16G  36% /
tmpfs        tmpfs     530M      0   530M   0% /lib/init/rw
proc          proc        0      0      0   -  /proc
sysfs        sysfs        0      0      0   -  /sys
udev         tmpfs     525M   336k   525M   1% /dev
tmpfs        tmpfs     530M      0   530M   0% /dev/shm
devpts      devpts        0      0      0   -  /dev/pts
/dev/sdb3     ext4      57G    11G    43G  21% /home
/dev/sda7 reiserfs      80G    11G    70G  14% /var/www
/dev/sda6 reiserfs     140G    98G    42G  71% /home/sveta/Архив
/dev/sdc2 reiserfs     141G   107G    34G  76% /home/sveta/Архив-2
/dev/sdb5 reiserfs     664G   125G   539G  19% /home/sveta/Архив-3
/dev/sdc1 reiserfs     111G    93G    18G  84% /home/sveta/iso
fusectl    fusectl        0      0      0   -  /sys/fs/fuse/connections
binfmt_misc
       binfmt_misc        0      0      0   -  /proc/sys/fs/binfmt_misc

Информация о смонтированном разделе включая UUID и метку тома (по ФС выдаёт более точную информация, к примеру FAT32 вместо vfat)


file -s /dev/s.....

Вывод похож на:

/dev/sdb2: Linux rev 1.0 ext4 filesystem data, UUID=4dd901cf-5b15-41a2-aed1-fabaff52fe83, volume name "squeeze" (needs journal recovery) (extents) (large files) (huge files)

Файловая система, точка монтирования, UUID, метка тома (M$ фс выдаётся в не очень понятном виде, к примеру FAT-ы видим как vfat)


blkid
или
blkid /dev/s..... # это инфо по конкретному разделу

Вывалит примерно так:

/dev/sdb5: LABEL="extention-2" UUID="0817a729-8ad6-4b3c-b4da-504833d10b4b" TYPE="reiserfs" 
/dev/sda6: LABEL="ushome" UUID="4ac45396-45b7-4a21-a4d3-26c2988c4521" TYPE="reiserfs" 
/dev/sda7: LABEL="wwwdisk" UUID="e91d7fd7-2e3b-4c4d-8d2b-416d4f800171" TYPE="reiserfs" 
/dev/sdc1: LABEL="iso" UUID="a44018a3-1fa5-4808-8bf7-b2048196721e" TYPE="reiserfs" 
/dev/sdc2: LABEL="extention" UUID="641c5f13-1f70-42f8-87a8-e875d5755c6b" TYPE="reiserfs" 
/dev/sda1: LABEL="debsys" UUID="a929d4cf-e53f-4c42-a25e-c9e11d24b5ff" TYPE="reiserfs" 
/dev/sda5: TYPE="swap" 
/dev/sdb1: UUID="ec2c7e2b-987a-4c1a-a8a1-f6ec4953763e" TYPE="swap" 
/dev/sdb2: LABEL="squeeze" UUID="4dd901cf-5b15-41a2-aed1-fabaff52fe83" TYPE="ext4" 
/dev/sdb3: LABEL="squeezehome" UUID="b088382e-6ee7-457e-bfe7-61b1f001089b" TYPE="ext4" 
/dev/sdd1: LABEL="FOX-II" UUID="80C0-5BD6" TYPE="vfat"


Монтирование файловых систем в Linux


Статья о монтировании разделов жесткого диска и многое другое находится в блоге "Записки дебианщика".


Форматирование жеских дисков в консоли Linux


Полное уничтожение данных на диске, включая ФС и MBR:

dd if=/dev/zero of=/dev/sd....

Команда dd запишет на диск нули из устройства /dev/zero.
Если указать именно устройсво, к примеру /dev/sda, то будет уничтожена MBR и ФС со всеми даннымибезвозвратно!
Если задать конкретный раздел на диске, т.е., к примеру /dev/sda1, то будет уничтожена ФС с данными только на этом разделе и тоже безвозвратно!

Все действия над дисками по уничтожению, формированию таблицы разделов или форматированию производятся на отмонтированной файловой системе!


Формирование таблицы разделов


Будем использовать fdisk и как пример, диск /dev/sda

fdisk /dev/sda

После этой команды fdisk должен ругнуться на отсутствие таблицы разделов и правильно, мы же туда нули записали!

Будем создавать новый раздел. Для этого жмём "n" и ENTER.

Далее, если раздел будет первичным, то пробиваем "p" и естественно жмём ENTER.

Затем fdisk предложит выбрать номер первичного раздела. В нашем случае он первый, значит жмём "1" и ENTER.

На следующем шаге просто пропускаем fdisk дальше нажатием ENTER.

Чтобы посмотреть, что у нас получилось можно нажать "p"

Fdisk по умолчанию сформировал Linux раздел и если нужно это изменить, то жмём "t" и ENTER.

Далее, выбираем наш созданный раздел - 1

В появившемся списке ищим интересующую файловую систему, к примеру FAT 32 - эта строка под буквой "b" и соответственно вбиваем "b", завершаем ввод нажатием ENTER.

Если есть желание, то можно снова взглянуть на то, что получилось. Для этого жмём "p". Должны увидеть первый первичный раздел с FAT 32.

На самом деле, до сих пор никаких изменений на диске не происходило и всё ещё можно отменить просто выйдя из fdisk нажав q и естественно ENTER.

Для записи измениний необходимо нажать "w" и ENTER.

После отработки fdisk на диск будет нанесена таблица разделов под FAT 32, но самой файловой системы ещё нет.
Чтобы создать файловую систему диск нужно форматировать, для этого используем, для нашего примера команду mkdoafs.

mkdosfs -F32 -v -n "метка_тома" /dev/sda1

Если при создании разделов формировался раздел не для FAT 32, а какой-то другой, то для форматирования нужно использовать команду для своей файловой системы. Ниже пример форматирования в ext4 и своп раздела:

mkfs -t ext4 -c /dev/sda1

своп

mkswap /dev/sda1

Маленькое пояснение опций:

после -t указывают файловую систему
-c - необходима для проверки на предмет "битых" секторов.

Ставим метку о том что раздел загрузочный


Поставить метку, что раздел загрузочный можно с помощью fdisk.

fdisk /dev/sda

Далее, жмём "a", затем указываем номер раздела (в нашем случае - 1) и для записи изменений необходимо вбить "w".


Генерация/присвоение UUID раздела диска


tune2fs /dev/sda1 -U numbergeneratedbyuuidgen # UUID генерирует uuidgen

или

tune2fs /dev/sda1 -U random   # генерирует новый случайный UUID

или

tune2fs /dev/sda1 -U time    # генерирует новый зависимый от времени UUID

Присвоение нужного UUID

tune2fs /dev/sda1 -U нужный_UUID

В примере использован раздел sda1 у вас может быть свой.


Изменение или создание меток разделов


Примеры для различных фаловых систем

Для swap

mkswap -L <label> /dev/sda1

Для ext2/ext3/ext4

e2label /dev/sda1<label>

Для reiserfs

reiserfstune -l <label> /dev/sda1

Для jfs

jfs_tune -L <label> /dev/sda1

Для xfs

xfs_admin -L <label> /dev/sda1

Для fat/vfat (FAT12, FAT16, FAT32)

mkdosfs -n <label> /dev/sda1

Для ntfs

ntfslabel /dev/sda1 <label>

Проверка разделов на предмет "битых" блоков


Используем команду badblocks запустив её от пользователя root.
К примеру, чтобы проверить (read-only test) на предмет испорченных блоков раздел /dev/sda1 нужно дать команду:

badblocks -s /dev/sda1

Проверка файловых систем на ошибки


Для этих целей подойдёт приложение fsck. Оно способно проверить и исправить ошибки на любой файловой системе поддерживаемой ядром Linux.

Пример использования:

fsck /dev/sda1

после отработки fsck консоль возвращает некоторые коды

  • 0 — нет ошибок
  • 1 — ошибки файловой системы исправлены
  • 2 — необходима перезагрузка системы
  • 4 — ошибки файловой системы не исправлены
  • 8 — в процессе проверки произошли ошибки
  • 16 — неверное использование команды либо синтаксическая ошибка
  • 32 — fsck была прервана пользователем
  • 128 — ошибка разделяемых объектов
Все манипуляции с проверкой ФС и исправлением ошибок необходимо проводить на отмонтированной файловой системе.


Создаём файловую систему в обычном файле


Создаём файл размером 20 МиБ

$ dd if=/dev/zero of=./ext4.img count=40960

Создаём в этом файле файловую систему ext4

# mkfs -t ext4 -q ./ext4.img

Монтируем в любой каталог, к примеру в ./123/

# mount -o loop ./ext4.img ./123

Чтобы обычный пользователь мог содавать в смонтированном файле файлы и кателоги то даём права:

chmod 777 ./123

Мне пришлось прибегнуть к такой хитрости при установке на локальном компьютере с LAMP нескольких CMS, которые ну ни как не хотели работать их подкаталога, а apache перестраивать желания небыло. Просто создал для каждой CMS свой маленький файл с FS где её и установил, потом монтировал нужный файл на место указанное в настройках apache2 как DocumentRoot. Бысто и удобно. Ещё в файле можно держать домашние каталоги пользователей - монтируем при старте через fstab. Получается лимитируемое пространство пользователя и копию сделать просто.
Опубликовано: foxadmin, Автор/источник: Сакрюкин К.В. 28 Январь 2012 16:43:51

Комментариев нет:

Отправить комментарий