cfdisk :не удается открыть /dev/sda

Я думаю, что это ближе к тому, что вы хотите, но определенно может быть улучшено дальше:

while :; do
    if ! ping -c1 google.com >/dev/null 2>&1; then
        echo "no ping,will reset" 
        #counter of bad pings here
        count=1             
        while [ "$count" -lt 30 ]; do
            echo "$count"
            # insert here: retest for good ping
            nmcli networking off 
            sleep 5 
            nmcli networking on
            if ! ping -c1 google.com >/dev/null 2>&1; then
                echo "still offline for $count x @ $(date)" 
            else 
                #echo "reconnected at $(date)" 
                echo "ON"
                break
            fi
            ((count++))
            sleep 1
        done
    else
        echo "ONLINE"
        sleep 1
        clear
    fi
done
1
06.08.2020, 20:03
1 ответ

В вашей системе есть устройство чтения карт памяти SD/MMC, которое не использует (первоначально основанное на SCSI -унифицированное наименование устройств хранения ). Он использует другой стиль имени устройства :, все ваше -дисковое устройство — /dev/mmcblk0, а его разделы перечислены как mmcblk0p<N>, где <N>— номер раздела. И да, это нормально для картридеров SD/MMC, которые используют специальный драйвер вместо интерфейса USB Mass Storage.

Итак, вы можете использовать здесь sudo cfdisk /dev/mmcblk0.

Более того, если вы читаете книгу «Linux From Scratch», ориентированную на аппаратное обеспечение x86, вам следует помнить, что вам нужно будет заменить /dev/mmcblk0на любую ссылку на /dev/sdaили аналогичную, когда и где угодно. предполагаемое значение - «мой системный диск как целый диск». Точно так же, когда вы видите /dev/sda1как ссылку на «первый раздел моего системного диска», вы должны заменить его /dev/mmcblk0p1. И так далее для любых других разделов.

Нет, /dev/не является пространством для установки перегородки . Насколько я знаю, не существует пространства для установки раздела . Любой каталог в любом месте может действовать как точка монтирования для другой файловой системы. Если вы задаетесь вопросом, где вы должны делать точки ездового животного,тогда вам, вероятно, следует взглянуть на Стандарт иерархии файловой системы (FHS). Хотя вы совершенно вольны заниматься своими делами, если захотите.

Обычно предпочтительно, чтобы каталог был пустым при использовании в качестве точки монтирования, так как любое существующее содержимое будет скрыто, а вместо него будет показано содержимое корневого каталога смонтированной файловой системы. (В Linux у системного администратора есть способы «заглянуть под» смонтированную файловую систему, но я отвлекся...)

/devпредставляет собой подкаталог -дерева для узлов устройств (файлов устройств ). Только они и подкаталоги -для них обычно должны находиться в этом подкаталоге -.

В современных системах Linux /devобычно представляет собой файловую систему (на основе оперативной памяти -, тип tmpfsили devtmpfs), которая автоматически управляется udev. В результате вы, как правило, будете видеть узлы устройств только для тех устройств, которые действительно существуют в вашей системе и для которых загружены драйверы уровня ядра -.

Например, если вы создаете третий раздел на SD-карте, вы должны увидеть, что /dev/mmcblk0p3появится автоматически. И если вы удалите второй раздел, /dev/mmcblk0p2исчезнет.

Узлы устройства не являются обычными файлами :, они, по сути, являются точками подключения к конкретному драйверу устройства в ядре, а аппаратное (или программное )устройство (с )контролируется драйвером.

До того, как были разработаны динамически -управляемые /devфайловые системы, /devбыл просто каталогом в корневой файловой системе, содержащим узлы устройств. Набор узлов устройств будет создан во время установки ОС и сохранится в файловой системе на диске, как и обычные файлы.

(Другими словами, /dev/в основном представляет собой просто механизм для сопоставления спецификации устройства, дружественной к ядру -, «блочного устройства, драйвера #179,устройство #1" на более человеческое -удобочитаемое имя, такое как /dev/mmcblk0p1и наоборот.)

Стандартным методом создания (или повторного -создания, если по какой-либо причине )узлов устройства будет удалено, будет команда mknodи сценарий с именем MAKEDEV, который будет использовать циклы mknod. ] для создания различных стандартных наборов устройств с помощью одной команды.

Нет, MAKEDEVне имеет ничего общего с разделами как таковыми. Он также не делает ничего (ни узлов устройств, ни разделов )динамически управляемыми. Это инструмент для массового создания старых -стилей статически управляемых узлов устройств.

Динамическое управление деревом каталогов /devскорее всего потребует установки udev. Если вы работаете с LFS, это может произойти позже... возможно, немного позже.

Насколько мне известно, создание раздела "динамически управляемым" на самом деле не проблема. Если только это не странный способ сказать «используя диспетчер логических томов (LVM )», возможно?

1
18.03.2021, 23:14

Теги

Похожие вопросы