Я сделал сценарий, чтобы помочь решить эту проблему без ГАРАНТИИ. (но я протестировал на своей виртуальной машине),
Запущение следующего скрипта, с поврежденным HD в первом параметре: $./repart.sh sda
#!/bin/bash
HARDDISK=$1
PARTITIONS=$(ls -d /sys/block/${HARDDISK}/${HARDDISK}?/)
echo "unit: sectors"
for i in $PARTITIONS; do
DEVICE=$(basename $i)
START=$(cat $i/start)
SIZE=$(cat $i/size)
echo "/dev/$DEVICE : start=$START, size=$SIZE, type=XX"
done
Вывод является sfdisk форматом. Но осторожность, этот файл должен быть изменен, чтобы использоваться. При расширенном разделе type=5, увеличьте размер, использовав все логическое пространство плюс пространство между запуском расширенных и запуститесь первого логического раздела.
unit: sectors
/dev/sda1 : start=63, size=2040192, type=XX
/dev/sda2 : start=2040255, size=20482875, type=XX
/dev/sda3 : start=22523130, size=19197675, type=XX
/dev/sda4 : start=41720805, size=2, type=XX
/dev/sda5 : start=41720868, size=208782, type=XX
Необходимо изменить тип, от XX до количества типа раздела. Поместите загрузочный раздел в первую строку.
unit: sectors
/dev/sda1 : start=63, size=2040192, type=83, bootable
/dev/sda2 : start=2040255, size=20482875, type=83
/dev/sda3 : start=22523130, size=19197675, type=fd
/dev/sda4 : start=41720805, size=208845, type=5
/dev/sda5 : start=41720868, size=208782, type=82
Подайте заявку это изменяется
cat repart.sfdisk | sfdisk -f /dev/sda
Перечитайте таблицы разделов
partprobe
/sbin/blockdev --rereadpt
Переустановите личинку
grub-install /dev/sda
Не входя в Tomoyo, самое простое вероятное решение состояло бы в том, чтобы установить полномочия 070 на защищенной папке и затем использовать бит setgid для предоставления доступа соответствующими программами.
Это потребовало бы дальнейших взглядов / управление, если Вы имеете многочисленных пользователей в системе и хотите ограничить их отдельно как бы то ни было.