LINUX.ORG.RU

Да простит мне всеуважаемый all мою безграмотность. А разве есть такое как cd disk serial number?

UVV ★★★★★
()
Ответ на: комментарий от UVV

мне нужно узнать как по аналогии в windows команда dir там показывается: имеет метку тома ... имеет серийный номер тома ....

kold2015
() автор топика

посмотри в dmesg, mount

Это типа защита такая?

anonymous
()

dev-libs/libcdio (/usr/bin/cd-info) ?

anTaRes ★★★★
()
Ответ на: комментарий от kold2015

Ещё вот тебе ссылка в подтверждения, что такой инфы нет на диске, а это изобретение винды http://www.linuxquestions.org/questions/linux-software-2/dvd-volume-serial-nu...

UVV ★★★★★
()
Последнее исправление: UVV (всего исправлений: 1)
fdisk -l *.iso | grep 'Идентификатор'
Идентификатор диска: 0x1d51fe2c
Идентификатор диска: 0x5f55bd3d
Идентификатор диска: 0x501ccb45
Идентификатор диска: 0x27bca83e
Идентификатор диска: 0x48523b87
Идентификатор диска: 0x3ff07489
Идентификатор диска: 0x65f99808
Идентификатор диска: 0x7565bcfd
Идентификатор диска: 0x03f1784c
Идентификатор диска: 0x3d62034e
anonymous
()
Ответ на: комментарий от UVV

привода не нужен нужен номер диска диск не пустой вроде бы на пустых болванках нет серийника

kold2015
() автор топика
Ответ на: комментарий от kold2015

НЯЗ это виндовый аналог UUID

$ ls -l /dev/disk/by-uuid/
insgesamt 0
lrwxrwxrwx 1 root root 10 22. Apr 16:34 0e838387-3772-4aaa-b5aa-0fc6d7f7215a -> ../../dm-3
lrwxrwxrwx 1 root root 10 22. Apr 16:34 1138c265-6cae-4f55-9d96-7b7592709e54 -> ../../dm-2
lrwxrwxrwx 1 root root 10 22. Apr 18:29 18C1-5680 -> ../../sdg1
lrwxrwxrwx 1 root root 10 22. Apr 18:29 1a0d48b9-8714-4fe2-9cb6-7b1f74019039 -> ../../sdg3
lrwxrwxrwx 1 root root 10 22. Apr 16:34 3a43831a-ad9f-4922-bdb2-5c447d66e6e2 -> ../../dm-6
lrwxrwxrwx 1 root root 10 22. Apr 16:34 41ca5e95-796b-418f-8a7d-0ced0a8bdb82 -> ../../dm-4
lrwxrwxrwx 1 root root 10 22. Apr 18:29 53AC-7166 -> ../../sdg2
lrwxrwxrwx 1 root root 10 22. Apr 16:34 629e7b35-a612-4d29-a3b1-8ec87f8d79e1 -> ../../dm-5
lrwxrwxrwx 1 root root 10 22. Apr 16:34 780561fb-34f5-4f82-9c58-8b43126dda88 -> ../../dm-1
lrwxrwxrwx 1 root root 10 22. Apr 2015  7E56446F56442A6B -> ../../sda2
lrwxrwxrwx 1 root root 10 22. Apr 2015  8E4E42614E424267 -> ../../sda1
lrwxrwxrwx 1 root root 10 22. Apr 2015  9179a071-7a25-49a7-ae77-05989be8ce94 -> ../../sdb3
lrwxrwxrwx 1 root root 10 22. Apr 16:34 a7a19d01-d38c-4d32-8801-cfbc150dd398 -> ../../sdb1
lrwxrwxrwx 1 root root 10 22. Apr 16:34 b38a5c79-30ff-4068-9a66-07fc24a891f1 -> ../../sda3

Лекго увидеть что у меня на флешке 2 раздела(sdg1,sdg2) имеют «виндосовские» фс.

Deleted
()
Последнее исправление: nepank (всего исправлений: 2)
Ответ на: комментарий от Deleted

вообщем мне нужно получить какой нибудь уникальный номер вставленного диска (не привода) и я слышал что http://s015.radikal.ru/i331/1504/09/bf9763890c38.png вот этот номер как"серийный номер тома" рассчитывается по какому то алгоритму... так вот знать бы как он расчитывается

kold2015
() автор топика
Ответ на: комментарий от kold2015

ну вставь диск, да посмотри как его обозвали. См в моем предыдущем посте.

Deleted
()
Ответ на: комментарий от kold2015

знать бы как он расчитывается

Если верить исходникам Reactos, то это сумма первых 2048 байт primary volume descriptor, рассчитанная по такому вот алгоритму:

    union
    {
        ULONG Value;
        UCHAR Part[4];
    } Serial;
            
    /* Calculate the volume serial number */
    Serial.Value = 0;
    for (i = 0; i < 2048; i += 4)
    {
        /* DON'T optimize this to ULONG!!! (breaks overflow) */
        Serial.Part[3] += Buffer[i+0];
        Serial.Part[2] += Buffer[i+1];
        Serial.Part[1] += Buffer[i+2];
        Serial.Part[0] += Buffer[i+3];
    }
    CdInfo->SerialNumber = Serial.Value;

Подробности в reactos/drivers/filesystems/cdfs/fsctl.c

cdslow ★★
()
Ответ на: комментарий от kold2015

А вот так ? Может у винды вод «серийным номером тома» подразумевается UUID ?

 testbot~>sudo blkid
/dev/sr0: UUID="2014-12-03-21-15-24-00" LABEL="Fedora-Live-WS-x86_64-21-5" TYPE="iso9660" PTUUID="58431388" PTTYPE="dos"

Myp3ik ★★
()
Последнее исправление: Myp3ik (всего исправлений: 1)
Ответ на: комментарий от Myp3ik

те как бы можно узнать uuid вставленного в привод диска( он не пустой)?

kold2015
() автор топика
Ответ на: комментарий от kvap

4-байтового номера, как на скриншоте, явно недостаточно для уникальной идентификации диска.

А ему и не нужен совсем уникальный идентификатор. Вполне достаточно, чтобы идентификатор был уникален в пределах одного компьютера.

Valkeru ★★★★
()
Ответ на: комментарий от Myp3ik

Может у винды вод «серийным номером тома» подразумевается UUID

Винда говорит, «серийный номер тома: 337E-0A12», а UUID=«79F9718A337E0A12», то есть 8 последних цифр UUID это виндовый серийный номер. Для разделов винчестера, а для для cd/dvd мой blkid такой информации не дает (blkid from util-linux-ng 2.17.2).

Deleted
()
Ответ на: комментарий от kold2015

что такое «CdInfo»?

Структура в драйвере Windows, хранящая информацию о диске. Это не имеет значения в Linux :)

cdid.c:

#include <stdio.h>

#define SEC_SIZE 2048
#define VD_N 16

unsigned cdid(unsigned char pvd[SEC_SIZE])
    {
    unsigned char part[4] = {0};
    int i;

    for(i = 0; i < SEC_SIZE; i += 4)
        {
        part[3] += pvd[i + 0];
        part[2] += pvd[i + 1];
        part[1] += pvd[i + 2];
        part[0] += pvd[i + 3];
        }

    return (part[3] << 24) + (part[2] << 16) + (part[1] << 8) + part[0];
    }

int main(int argc, char *argv[])
    {
    FILE *in;
    unsigned char buf[SEC_SIZE];

    if(argc != 2)
        {
        fprintf(stderr, "Call: cdid /dev/path\n");
        return 1;
        }

    /* Open device */
    in = fopen(argv[1], "rb");
    if(in == NULL)
        {
        perror(NULL);
        return 2;
        }

    /* Seek to primary volume descriptor */
    if(fseek(in, VD_N * SEC_SIZE, SEEK_SET) != 0)
        {
        perror(NULL);
        return 2;
        }

    /* Read descriptor */
    if(fread(buf, 1, SEC_SIZE, in) != SEC_SIZE)
        {
        perror(NULL);
        return 2;
        }

    /* Caclculate disc id */
    printf("%08X\n", cdid(buf));

    return 0;
    }
cdslow ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.