Sector is already in use by the program FlexNet: cosa significa e come risolvere

By Jessica Lambiase

grub

Una delle cose più belle di Linux è la possibilità, per la maggiore, di visualizzare a terminale l’output di qualsiasi comando (applicazioni incluse) per la diagnosi di problemi e il debugging delle stesse. In particolare, oggi andremo a capire il perché di un particolare messaggio di avviso che compare, di norma, immediatamente dopo un tentativo di installazione o aggiornamento del bootloader GRUB su Linux. Nello specifico analizzeremo Flexnet ed il relativo “warning”, che di solito si presenta come segue:

/usr/local/sbin/grub-bios-setup: avviso: Sector 32 is already in use by the program `FlexNet’; avoiding it. This software may cause boot or other problems in future. Please ask its authors not to store data in the boot track.

Questo messaggio si presenta solitamente nell’output generato dall’installazione di un sistema operativo Linux-based in sistemi dual-boot (fase dedicata al bootloader) oppure dopo aver impartito il comando grub-install /dev/sdX o il comando update-grub. Incredibile ma vero, generalmente un errore simile è scaturito da un’applicazione installata in Windows o addirittura da Windows stesso.

TL;DR: per saltare la parte teorica (che consiglio comunque di leggere) e visualizzare la procedura di risoluzione dell’errore è sufficiente scendere fino al paragrafo “Aggirare il problema FlexNet ed installare GRUB”.

Cosa è FlexNet e perché dà problemi con GRUB?

Flexnet Publisher (conosciuto come FlexIM) è un software proprietario della Flexera Software, è un vero e proprio gestore di licenze, e si occupa in particolare di gestire determinati tipi di licenze multiple (ad es. le licenze aziendali) ed in alcuni casi si installa in un punto particolare del disco che solitamente è libero oppure, in sistemi multiboot/NFS e simili (con BIOS o in modalità EFI legacy), occupato dalle direttive d’avvio del sistema: stiamo parlando dello spazio che intercorre tra il master boot record del disco e l’inizio del primo settore della prima partizione del disco.

Per meglio comprendere il concetto, immaginate un disco MBR nella sua organizzazione logica come una stanza di una biblioteca: in questa stanza vi saranno tanti mobili (le librerie), ciascuna libreria sarà suddivisa in mensole, e su ciascuna mensola vi saranno dei libri. Le librerie del nostro disco rappresentano i cilindri (numerati a partire da 0), le “mensole” del mobile rappresentano i settori (numerati a partire da 0), ed i libri rappresentano i dati memorizzati in ciascuno dei settori.

Supponiamo per iniziare che ogni libreria possa contenere 63 mensole: è esattamente ciò che accade nella realtà, ogni cilindro è composto da esattamente 63 settori. Supponiamo ora che ogni libro rappresenti esattamente un byte di dati: nella nostra libreria ciascuna mensola contiene esattamente 512 libri, per cui ogni settore è composto da esattamente 512 byte di dati. Riassunto, la dimensione del blocco predefinita per ciascun settore del disco rigido è di 512 byte.

Ricapitolando il tutto, un cilindro è composto da 63 settori, ed ogni settore è composto a sua volta da 512 byte di dati.

Come è semplice intuire più un disco è grande e più numerosi saranno i cilindri ed i settori in esso presenti. Ricordiamo che un disco può essere partizionato (o meglio, contiene almeno una partizione primaria che, nello stato iniziale, è pari alla dimensione totale del disco stesso). E’ inoltre buona norma installare il sistema operativo principale sulla prima partizione del disco… ma, diversamente da quanto ci si aspetta, tale partizione non inizia dal cilindro 0 del disco bensì dal cilindro 1 – questo perchè MSDOS imponeva, tanto tempo fa, che una partizione iniziasse dopo il termine di un cilindro. Calcoli alla mano, se nel cilindro 0 sono contenuti i settori da 0 a 62, nella prima partizione dell’hard disk si iniziano a scrivere dati a partire dal settore 63.

ImgPartitionFig

I precedenti 62 settori vengono quindi sprecati poiché non appartengono a nessuna partizione e, apparentemente, non riconosciuti dal sistema operativo? La risposta è no.

Un settore particolare è il settore 0 – il vero e proprio punto d’inizio dell’hard disk – che contiene il cosiddetto MBR (il Master Boot Record), ossia quella parte del disco in cui vengono definiti il codice d’avvio del sistema operativo (oppure del bootloader, dipende dai casi), la firma digitale del disco, la firma digitale dell’MBR stesso e, attenzione, l’importantissima tabella delle partizioni. In pratica, i 512 byte del settore 0 sono suddivisi in tale maniera:

  • byte da 0 a 439: codice d’avvio del sistema operativo/del bootloader (440 byte in totale);
  • byte da 440 a 443: firma digitale del disco (4 byte in totale);
  • byte da 444 a 445: bytes nulli (2 byte in totale, rappresentano un delimitatore);
  • byte da 446 a 509: tabella delle partizioni (64 byte in totale);
  • byte da 510 a 511: firma digitale dell’MBR (2 byte in totale).

I restanti settori del cilindro (da 1 a 62) sono inizialmente vuoti ma possono essere utilizzati da programmi quali – ad esempio – Grub2, FlexNet ed altri che richiedono spazio e direttive ad un livello ancora più basso rispetto al sistema operativo.

Tornando a noi, ecco il problema: guardando la suddivisione in alto noterete che al bootloader sono dedicati soltanto 440 byte, che oggi per GRUB2 non sono più sufficienti; per cui, quando il bootloader viene installato, il suo codice viene scritto anche in altri settori del cilindro 0 con criteri però non prevedibili (decisi a run-time), cosa che anche FlexNet fa. E’ per questo che il loader ed il gestore “litigano” scatenando il suddetto messaggio d’avviso. In caso GRUB non riesca a scrivere in un settore già occupato da FlexNet il computer potrebbe comunque funzionare, ma non è detto ciò accada.

Aggirare il problema FlexNet ed installare GRUB

Contrariamente a quanto si legge in rete, per riuscire ad installare GRUB senza problemi non è necessario formattare il disco ma semplicemente azzerare i primi 64 settori dell’hard disk o, in alternativa, soltanto il settore occupato da FlexNet e reinstallare GRUB immediatamente dopo.

Sono in dovere di avvisarvi che la procedura è alquanto pericolosa, si rischia di compromettere il funzionamento del programma/dei programmi che utilizzano FlexNet o di altri programmi che occupano il cilindro (in tal caso sarà sufficiente reinstallarli) e, nell’ipotesi più funesta, può anche comportare la perdita della tabella delle partizioni e quindi di tutti i dati presenti sul disco. Andremo a limitare l’ultima eventualità creando, prima di iniziare, un backup dei settori azzerati.

Per procedere è necessario disporre di una distribuzione Linux funzionante (live o installata sul PC che contiene il disco problematico); in questo tutorial supponiamo che il disco “problematico” su cui bisogna installare GRUB ed azzerare il settore FlexNet sia /dev/sda; si raccomanda, pena la perdita completa dei dati, di non riavviare MAI il computer prima del termine della procedura.

Parte 1: il backup

Come già detto, la prima operazione in assoluto è quella di fare il backup dei primi 63 settori del disco (quelli contenenti la tavola delle partizioni e senza i quali i dati su disco saranno irrimediabilmente persi), da ripristinare all’occorrenza in caso di disastro. Per procedere, bisognerà digitare da terminale

sudo dd if=/dev/sda of=~/backup_settori bs=512 count=63

DD è un programma che permette la copia in formato raw di byte presenti sul disco; i parametri “if” e “of” stanno, rispettivamente, per “input file” ed “output file”, “bs” sta per block-size (dimensione del blocco) e “count” è il conteggio di quanti blocchi bisogna copiare.

Spostate il file backup_settori che sarà creato nella home directory e spostatelo immediatamente in un posto sicuro, ad esempio su una chiavetta USB. Potrà tornare estremamente utile in caso di problemi.

Parte 2: la cancellazione

Come già accennato è possibile risolvere in due modi: riempiendo di zeri – e quindi eliminando – i settori da 1 a 62 del disco (rischiando così di compromettere eventualmente anche altri programmi oltre FlexNet) oppure eliminando soltanto il settore occupato da FlexNet (nel nostro esempio è il 32, ma viene comunque segnalato nel warning di GRUB).

Nel primo caso digitate da terminale

sudo dd if=/dev/zero of=/dev/sda bs=512 count=62 seek=1

Mentre, nel secondo caso, digitate

sudo dd if=/dev/zero of=/dev/sda bs=512 count=1 seek=32

Il parametro seek serve a definire il punto del disco da cui iniziare l’operazione. Cambiate il 32 del comando precedente con il settore occupato da FlexNet.

Parte 3: reinstallare GRUB

Se NON avete utilizzato la distribuzione live ma un’installazione residente del sistema operativo, reinstallate (ed aggiornate) GRUB digitando

sudo grub-install /dev/sda
sudo update-grub

Se invece avete utilizzato una distribuzione live dovrete creare un ambiente di installazione per GRUB chrootando (in pratica “spostando” l’ambiente di lavoro sull’installazione residente di Linux) in essa. Supponendo che Linux sia installato nella partizione /dev/sda2, dovrete digitare da terminale

cd ~
mkdir disco
sudo mount /dev/sda1 disco
sudo mount -o bind /proc disco/proc
sudo mount -o bind /dev disco/dev
sudo mount -o bind /sys disco/sys
sudo chroot disco
sudo grub-install /dev/sda
sudo update-grub
sudo umount /dev/sda1
rm -rf disco

A questo punto GRUB sarà reinstallato e, finalmente, sarà possibile riavviare il PC.

L’articolo Sector is already in use by the program FlexNet: cosa significa e come risolvere appare per la prima volta su Chimera Revo – News, guide e recensioni sul Mondo della tecnologia.

Se vuoi sostenerci, puoi farlo acquistando qualsiasi cosa dai diversi link di affiliazione che abbiamo nel nostro sito o partendo da qui oppure alcune di queste distribuzioni GNU/Linux che sono disponibili sul nostro negozio online, quelle mancanti possono essere comunque richieste, e su cui trovi anche PC, NAS e il ns ServerOne. Se ti senti generoso, puoi anche donarmi solo 1€ o più se vuoi con PayPal e aiutarmi a continuare a pubblicare più contenuti come questo. Grazie!

Hai dubbi o problemi? Ti aiutiamo noi!

Se vuoi rimanere sempre aggiornato, iscriviti al nostro canale Telegram.
Se vuoi ricevere supporto per qualsiasi dubbio o problema, iscriviti alla nostra community Facebook o gruppo Telegram.
Cosa ne pensi? Fateci sapere i vostri pensieri nei commenti qui sotto.
Ti piace quello che leggi? Per favore condividilo con gli altri.
Amazon Music
Scopri le ultime offerte per dischi ssd su Acquista su Amazon
Scopri le ultime offerte per memorie RAM DDR su Acquista su Amazon
Scopri le ultime offerte per Chromebook su Acquista su Amazon
Scopri le ultime offerte per Raspberry su Acquista su Amazon

Potrebbero interessarti anche...

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.