Unsupported Partition Table Fix
I'm trying to setup my first Unraid server and I've been unable to create a disk on the array that isn't listed as "unmountable" due to an "unsupported partition layout." Here is an summary of the hardware and software I'm using:
Unsupported Partition Table Fix
- I've SSH'd into Unraid and used fdisk to clear all existing partitions and create a single new one with GPT as the table and xfs as the partition typeDespite taking all these different steps, I'm still stuck with the aforementioned error message when I start the array. Could you please help me resolve this issue?
Hello everyone, I purchased a 4TB WD Red drive, and installed it into my server. UnRAID detects it but when I start the array it will say " Unmountable: Unsupported partition layout" on that particular drive. The other drives in the system are 2 2TB WD Red's and a 250GB Samsung Evo SSD. I'm using a Dell H200 raid card and I've attached the diagnostics of the server.
Invalid partition doesn't necessarily mean a drive problem, just that the partition doesn't conform to what Unraid expects, though that should not happen without a reason, diagnostics might give more clues.
Sorry to go sort of off-topic but misunderstanding "format", though common, can cause data loss. Many times we have seen people format an array disk that has data on it just because it is unmountable and needs filesystem repair. You can't recover a formatted disk from parity.
That errors means something changed in the partition/MBR and it no longer conforms to what Unraid expects, this should not happen out of the blue, but difficult to guess what caused it, if there was data on disk2 you could likely recover it by rebuilding the disk on top, that would re-create the partition, assuming parity is valid.
b. Type list disk. After doing this you will see all of your disks listed. If there is a * marked under GPT then your system is using the GPT partition structure, and you can proceed to the following steps. If not, then your hard drive will need to be converted to the GPT format, and you'll need to perform a clean install of Windows 10.
Over time, hundreds of thousands of partitions get added to a table. The GetPartitions API is used to fetch the partitions in the table. The API returns partitions which match the expression provided in the request.
Lets take a sales_data table as an example which is partitioned by the keys Country, Category, Year, and Month. If you want to obtain sales data for all the items sold for the Books category in the year 2020, you have to make a GetPartitions request with the expression "Category = Books and year = 2020" to the Data Catalog.
If no partition indexes are present on the table, AWS Glue loads all the partitions of the table, and then filters the loaded partitions using the query expression provided by the user in the GetPartitions request. The query takes more time to run as the number of partitions increase on a table with no indexes. With an index, the GetPartitions query will try to fetch a subset of the partitions instead of loading all the partitions in the table.
When you create a partition index, you specify a list of partition keys that already exist on a given table. Partition index is sub list of partition keys defined in the table. A partition index can be created on any permutation of partition keys defined on the table. For the above sales_data table, the possible indexes are (country, category, year, month), (country, category, year), (country, category), (country), (category, country, year, month), and so on.
The Data Catalog will concatenate the partition values in the order provided at the time of index creation. The index is built consistently as partitions are added to the table. Indexes can be created for String (string, char, and varchar) and Numeric (int, bigint, long, tinyint, and smallint) column types. For example, for a table with the partition keys country (String), item (String), creationDate (date), an index cannot be created on the partition key creationDate.
You can create a partition index during table creation. The CreateTable request takes a list of PartitionIndex objects as an input. A maximum of 3 partition indexes can be created on a given table. Each partition index requires a name and a list of partitionKeys defined for the table. Created indexes on a table can be fetched using the GetPartitionIndexes API
To add a partition index to an existing table, use the CreatePartitionIndex operation. You can create one PartitionIndex per CreatePartitionIndex operation. Adding an index does not affect the availability of a table, as the table continues to be available while indexes are being created.
The index status for an added partition is set to CREATING and the creation of the index data is started. If the process for creating the indexes is successful, the indexStatus is updated to ACTIVE and for an unsuccessful process, the index status is updated to FAILED. Index creation can fail for multiple reasons, and you can use the GetPartitionIndexes operation to retrieve the failure details. The possible failures are:
To fetch the partition indexes created on a table, use the GetPartitionIndexes operation. The response returns all the indexes on the table, along with the current status of each index (the IndexStatus).
After a partition index is created on a table, all new partitions added to the table will be validated for the data type checks for indexed keys. The partition value of the indexed keys will be validated for data type format. If the data type check fails, the create partition operation will fail. For the sales_data table, if an index is created for keys (category, year) where the category is of type string and year of type int, the creation of the new partition with a value of YEAR as "foo" will fail.
Once a partition index is created on a table, you cannot modify the partition key names for existing partition keys, and you cannot change the type, or order, of keys which are registered with the index.
When you call GetPartitions on a table with an index, you can include an expression, and if applicable the Data Catalog will use an index if possible. The first key of the index should be passed in the expression for the indexes to be used in filtering. Index optimization in filtering is applied as a best effort. The Data Catalog tries to use index optimization as much as possible, but in case of a missing index, or unsupported operator, it falls back to the existing implementation of loading all partitions.
For the sales_data table above, lets add the index [Country, Category, Year]. If "Country" is not passed in the expression, the registered index will not be able to filter partitions using indexes. You can add up to 3 indexes to support various query patterns.
Redshift Spectrum, Amazon EMR and AWS Glue ETL Spark DataFrames are able to utilize indexes for fetching partitions after indexes are in an ACTIVE state in AWS Glue. Athena and AWS Glue ETL Dynamic frames require you to follow extra steps to utilize indexes for query improvement.
You might have installed an OS with GPT partition table, and later overwrite the disk by installing another OS with MBR partition table. The MBR partition table editor, e.g. fdisk, sfdisk, or cdisk does not know GPT, so it overwrite part of the GPT partition table, but did not clean the rest completely. Therefore that's why you got such a message.
If you are sure your running OS is using MBR partition table, not GPT one, you can run sudo sgdisk -z /dev/sdx (Replace /dev/sdx with your disk name, e.g. /dev/sda for the 1st hard drive) to clean the GPT partition table, while keep the MBR partition table. //NOTE// Use the above command carefully. It might destroy everything on the harddrive.
Chances are you should be using a hybrid MBR with your setup. I don't know if Clonezilla deals well with that. If you need the hybrid MBR and Clonezilla doesn't like it, you could back up your hybrid MBR (in fact, your whole partition table) with gdisk, create a fresh protective MBR to replace the hybrid MBR, use Clonezilla, and then restore the hybrid MBR. This is a pretty advanced dance, though, so I recommend you do it only once you understand what you're doing. Read the gdisk documentation and anything else (maybe the Wikipedia article on GPT) until you understand it. (I haven't provided step-by-step details because I don't want to encourage anybody who doesn't understand it to try it.)
It's also possible that your hybrid MBR is damaged or that you've got mis-matched GPT and MBR data. In this case, you'll need to repair your partition table. The details of what you'll need to do depend on what specific damage you've suffered, and your post doesn't provide sufficient details to reveal that. The gdisk documentation site includes a page on repairing GPT damage, which should help you get started. Posting detailed output of both the GPT and MBR data might help us understand what's going on. To do this, enter gdisk, type x to enter the experts' menu, type p, type o, and then type q to quit. Post the entire session output. If gdisk asks you whether to use GPT or MBR data when you first start it, then that means that they're badly mis-matched, and you need to decide which to use. Note that in this sort of situation, OS X is likely to use the GPT data and Windows will use the MBR data, so you'll need to carefully check both tables, figure out which is correct (or which portions of each is correct), and develop a plan to reconcile them.
If your hard disk partition not recognized or not showing up on Windows 11/10, don't worry. On this page, we collected three major disk partition not showing or recognized by Windows problems, listed the causes of these issues, and offered respective solutions to help you make hard drive partition show up and work normally again.